C语言实现双人的五子棋小游戏

本文介绍了一个使用C语言编写的双人五子棋小游戏。通过清屏函数和无限循环,实现了棋盘的更新和棋子的落子效果。程序中使用全局变量和二维数组存储棋盘状态,通过switch和for语句处理游戏逻辑,包括菜单选择、玩家操作、赢棋判断等。同时,游戏允许背景更换,并采用while循环监听玩家输入,动态显示棋盘变化。
摘要由CSDN通过智能技术生成

主要就是利用清屏函数清除前面的输出棋盘,再利用无限循环函数不断输出棋盘和棋子,以清屏和无限输出棋盘达到光标移动和落子的视觉效果。


首先,我们定义了全局变量和一个二维数组用来记录棋盘有子和无子的数据,再多次使用了switch()语句进行菜单的选择与玩家一、二按键的获取达到该游戏的基础,在此我们又增加了背景更换的选择,for语句用来搭配DrawMap();函数画棋盘并将棋盘数据也就是二维数组的元素进行循环输入,在int judge(int x,int y);中以循环的形式判断输赢,if()语句更是大量运用在程序中game();函数中用来交换玩家落子并判断是否落子成功,在DrawMap();中用来判断何时输出黑子、白子和棋盘符号。while( );语句是实现玩家按键移动位置落子至关重要的一步,玩家每次按下功能键都是一次循环将DrawMap();函数放于循环体中搭配system("cls");使用,每次移动、落子都会再画出一个新的棋盘,从而实现光标移动和玩家落子的视觉效果。该程序还增加了一些有趣的步骤,不需要这些步骤的朋友可以看情况删除。

感谢大家的浏览。


代码:

            #include<stdio.h>
            #include<Windows.h>
            #include<conio.h>
             
            //棋盘行列大小
            #define hang 15
            #define lie 29
             
            //定义全局变量
            int i,j,l;                       //l为落棋总数
            int a[hang][lie],b[hang][lie];   //棋盘数据
            int cursorX,cursorY;             //光标位置
            int Gamer;                       //当前玩家;1黑子,2白子 
             
            //函数
                void menu();             //菜单函数
                void Init();             //初始棋盘函数
                void DrawMap();          //画棋盘
                void Rule_set();         //游戏规则
                void game();             //开始游戏
                int Put();               //落子函数
                int judge1(int ,int );   //判断玩家一获得胜利函数
                int judge2(int ,int );   //判断玩家二获得胜利函数
                void EndGame();          //游戏结束
                
            //主函数
            int main()
            {
                SetConsoleTitle("五子棋游戏"); //窗口标题
                system("color E0");            //背景颜色 淡黄
                int a,up=1;
                while(up)
                {
                    system("cls");             //使返回菜单栏重新选择功能时清除先前屏幕的内容,只显示菜单栏
                    printf("\n\n");
                    printf("                        欢迎使用五子棋游戏!\n");
                    printf("\n\n");
                    menu();
                    gotoxy(26,13);
                    printf("*请按相应数字选择功能:");
                    scanf("%d",&a);
                    getchar();
                    switch(a)                 //通过多分支选择结构执行调用相应函数,从而实现相应功能
                    {
                        case 1:game();break;
                        case 2:game();break;
                        case 3:Rule_set();break;
                        case 0:up=0;break;
                    }
                }
                system("cls");
                printf("\n已退出五子棋游戏!\n欢迎下次使用!\n");
                system("pause");
                return 0;
            }
             
            //菜单函数
            void menu()
            {
                printf("                                  ********************\n");
                printf("                                  *    五子棋游戏    *\n");
                printf("                                  *  [1]开始新游戏   *\n");
                printf("                                  *  [2]继续旧游戏   *\n");
                printf("                                  *  [3]规则与设置   *\n");
                printf("                                  *  [0]退出此游戏   *\n");
                printf("                                  ********************\n");
            }
             
            //初始化函数
            void Init()                       
            {
                int l=0;
                int a[hang][lie]={0};         //棋盘数据赋值为0
                cursorX=h
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值