今天我们来通过C语言实现一个简单三子棋小游戏!
在我们开始写代码前,我们需要理清程序设计思路
1.首先,游戏都需要的菜单页,这个非常简单,在主函数里面printf就可以
2.写出一个整体程序框架
如下图,使用do,while循环语句判断用户输入的选项(PS:while(input)就可以很好的实现用户输入非0时的循环效果)
3.上图中的game函数就是我们游戏实现的具体过程,接下来开始game函数的设计
(1)写一个row行col列的二维数组并将它初始化
(2)利用for循环嵌套将棋盘打印出来(在五行代码中实现)
(3)下面就开始游戏了,玩家优先下
这里我们需要注意的几个点:
1.玩家的思维总是从1开始,而我们的数组第一位的下标为0,所以在写的时候出于用户角度考虑,我们(-1)
2.判断坐标是否合理,当用户输入的坐标超出棋盘行列值,则提示坐标非法,并重新输入
3.在坐标合法的前提下,还要判断该位置是否已经被占据
(4)接着是电脑下
思路:电脑随机生成一个合法坐标,且快速判断是否被占据,若被占据则重新生成
srand((unsigned int)time(NULL));//此行为生成随机数的提前定义
(5)最后一步,用户或电脑每下一步都需判断是否三子连摆,我们在这步写上一个Iswin()的函数,在游戏的每个过程后加入判断,判断应为四种结果并分别用函数返回值(玩家赢(*),电脑赢(#),继续下(c),平局(o))
首先判断横竖对角线是否三连
其次判断是否平局(即棋盘是否下满)
用一次for嵌套循环判断
若判断为不需要继续,直接跳出游戏下棋循环,根据不同返回值分别为三种情况说明
4.由此,我们的三子棋程序思路就完成了
仅作为初学经验分享给大家,如有需要改进的地方欢迎指正!