简单的五子棋小游戏

前言:

这是一个简单的控制台五子棋小游戏,我目前的情况是刚学完C,C++尚未入门,在下面的代码中虽然用的是C++,但我的思考方式主要是C,所以新手不必害怕,耐心看完很简单的(●ˇ∀ˇ●)

数据及函数设计:

一、数据设计:

将二维数组作为棋盘,规定数组内数据为0表示空,1表示黑,2表示白

int map[19][19];

利用flag判断当前回合轮到谁落子

int flag;

// 表示当前回合数  偶数表示黑棋落子  奇数表示白棋落子

// 如: flag = 20 表示当前是第[20]次落子  由黑方落子

二、函数设计:(按照功能可以分为功能函数和菜单函数)

功能函数控制游戏的运行,菜单函数主要作用是刷新游戏界面和显示游戏结果。

1. 初始化游戏数据(棋盘重置)

        将棋盘的值初始化为0

        当前回合设为黑棋(flag设为0)

void init();
2. 胜负判断    

    根据传入的坐标(map对应位置)和flag值 判断落点后是否获胜

    坐标(x,y): 依次先输入横坐标,再输入纵坐标

    通过返回值确定游戏的结果(每次落子完成都要进行检查)

        0表示没有获胜

        1表示黑子胜利

        2表示白子胜利

int isWin(int x, int y);
3. 落子/走子

    在指定位置落子

        如果map[x][y]是空地 则修改map[x][y]的值,否则不操作

        x: 当前回合落子的x坐标

        y: 当前回合落子的y坐标

    返回值:

        0表示落子失败 (棋盘已经有子)

        1表示落子成功

int playerMove(int x, int y);
4. 主菜单(提供初始选项)

    功能: 展示选项, 玩家可以在这里选择进入游戏, 进入设置或退出游戏

        进入游戏: 调用游戏界面函数gameView();

        进入设置: 敬请期待...

        退出游戏: 调用exit(0);

void menuView();
5. 游戏界面(显示棋盘)

    功能: 根据map数组 打印游戏棋盘

void gameView_ShowMap();
6. 显示结果

    功能: 根据flag的值  打印游戏胜利界面  用户可以按任意键回到主菜单

void winView();
7. 游戏的整体逻辑(确保各函数按照一定规则被调用)

    功能: 游戏界面整合

        初始化游戏数据(调用函数init())

        while(1){

            打印游戏界面(调用函数gameView_ShowMap())

            接收玩家坐标输入

            落子(调用落子函数playerMove())

                (如果落子失败 重新开始循环)

            判断游戏是否胜利(调用胜利判断函数isWin())

                (如果游戏胜利 调用胜利界面函数 然后结束当前界面)

            切换玩家(修改flag值)

        }

void gameView();

当然,游戏的运行逻辑也可以放在main函数中执行,这里为了方便就将其声明为一个单独的函数。

int main()

{

    menuView();

    return 0;

}

最终的代码:
 

下面的代码中添加了详细的注释,大家可以对照着阅读,应该比较容易理

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值