今天应用所学的内容完成三子棋
1、首先写出测试函数,考虑到玩家或许玩完会又想玩,因此我们需要用do....while 循环,在这个过程要设置一个菜单,让玩家选择是否要继续游戏
那么结合我们的test函数,先把具体框架列出如下👇:
2、紧接着我们将游戏整个实现,封装在game函数里面。
要画出九宫格,我们需要设置一个数组,
char board[3][3]
3、在封装游戏函数中,我需要先初始化我们的棋盘。我们将棋盘封装在一个函数中,再在game函数中调用。
⚠️这个时候要在打印一个空的棋盘,但是由于打印的是空格,所以我们其实看不到。首先需要初始化数组,InitBoard();首先需要将数组传过去,然后把行和列传过去,得到的具体函数如下👇:
4、我们初始化棋盘后,我们要打印棋盘,我们先将其封装在一个函数中,再在game中调用。
我们此时需要打印出如下的图像:
要实现如上,可以考虑把它分成三组来实现。
代码如下图可知⬇️:
再稍微优化一点:
如果想要行列自由变换
我们需要在游戏里进行下一步就是玩家下棋。
这个棋盘里面玩家和电脑下棋是循环的,玩家下完要打印出来
玩家下棋的函数里面要判断下棋的坐标的合法性
呈现的效果如下:
之后电脑部分下棋,在游戏函数中表现为如此,因为要电脑生成随机的数那么电脑需要调用rand,那么也需要时间戳,此时调用srand,那么要出现如下的函数表达式。
紧接着游戏函数里面
调用了电脑下棋函数
那么游戏现在表现效果如下:
那么电脑和人进行三子棋的游戏,那么我们需要设置什么情况,玩家赢;电脑赢;平局;继续。这四种状态,然后再设置比如当有一行的数字和有一列的数字均是统一数字,或者对角线的数字也想等,这种情况也是能判断赢或者输。
其中如果设置一个函数如果棋盘满了设置为1,如果棋盘还有空格设置为0。
实现游戏的函数
自己的源代码:https://download.csdn.net/download/qq_58242352/88244594