目录
一、总体思路
1.菜单界面选择开始或者退出游戏
2.创建棋盘并初始化
3.打印棋盘
4.玩家落子
5.判定胜负(输,赢,平局)
6.电脑落子(随机位置落子)
7.判定胜负
二、程序设计
1、菜单设计
开始游戏 1 退出游戏 0
效果展示
2、创建棋盘并初始化
棋盘创建
棋盘由3行3列的二维数组表示,类型为char
使用宏定义的原因:便于将来修改棋盘尺寸
棋盘初始化
用‘ ’表示棋盘空白区域
3、打印棋盘
效果展示:
4、玩家落子
玩家通过输入坐标落子,玩家落子用’*’表示
落子条件:
1.棋盘范围内
2.空的地方
3.输入坐标不在棋盘范围内重新输入
5、电脑落子
电脑随机生成行列坐标,电脑落子用’#’表示
注意事项:
1.使用时间作为随机数种子,需要在主函数引用srand((unsigned int)time(NULL))确保是真的随机
2.随机坐标在棋盘范围内
6、判断胜负
判断游戏输赢:
返回4种不同的状态
玩家赢 - '*'
电脑赢 - '#'
平局 - 'Q'
继续 - 'C'
判定胜利:
判定所有的行
判定所有的列
判定两条对角线
判断和棋
调用isFull函数。如果数组中有元素为’ ‘,棋盘还有空位置,返回0。如果全不为’ ',1,此时棋盘上没有空位置。如果棋盘满了但未分胜负,结果为和棋。
(由于初学C语言,设计了3*3的棋盘,所以用最简单的方式判断胜利)
三、结果演示
玩家胜利
平局
电脑胜利
四、附录
game.h