对于三子棋相信大家并不陌生,今天我就和大家说下我写三子棋程序的大致思路,希望对大家有一
定的帮助。
目录
1.创建一个3*3的字符二维数组
首先我们观察三子棋布局,很容易和二维数组联系起来,每下一步棋,便是将数组中对应坐标的元素进行更改。现在我们来创建一个3*3的二维数组,char board[3][3];
2.初始化数组,使其每个元素都为空格
当我们创建好数组后,注意到,三子棋的棋盘初始状态是空的,那么为了营造这种状态我们需要将我们的数组初始化,使其元素全部变为空格,如图:
以上的ROW,COL,分别为行和列,通过上述代码我们即可将数组初始化
3.创建菜单界面函数
这一步的话,完全可以按照自己的喜好来制定,我这边的话给一个参考,如图:
4.打印棋盘函数
打印棋盘的话也可以按照自己的喜好来,需要注意的是,我们打印棋盘的同时也要将数组内对应位置的元素打印出来以方便此函数的复用,因为我们后续需要反复打印出棋盘来反映情况,如图:
5.玩家下棋函数
对于玩家下棋,我们首先应该考虑有以下几种情况:
1.下棋的坐标未越界且该位置元素为空格,即未下过子
2.下棋的坐标位置不为空格,即已下过子
3.下棋的坐标非法,不在范围内,需重下
为了判断这三种情况,并做出相应的操作,我们可以写出以下代码:
6.电脑下棋函数
电脑下棋的话,我们可以调用随机值函数来下子,这里的话我们就需要在主函数中调用一次srand函数,srand((unsigned int)time(NULL));接着我们需要在电脑下棋函数中调用rand函数,如图:
7.判断输赢函数
对于游戏结果,我们有以下几种情况:
1.玩家连成三子,玩家获胜;
2.电脑连成三子,电脑获胜;
3.棋盘布满,平局;
4.除空格外没有连成三子,同时棋盘未满,游戏继续;
而上述几种情况,我们或电脑每下一步就需要函数来判断,通过函数的返回值,得到相应的结果。
主函数内容:
判断输赢函数内容:
判断棋盘是否满了函数:
8.输出最终结果
最后一步便是输出最终的结果了,不多说了,如图:
总结:
由于本人能力有限,只能写出极其简易的三子棋版本,次版本的优化空间还有很多很多,例如可以用清屏函数,玩完一次后清屏,可以多加一些设定让电脑下子的时候会做到相应的堵棋,等等等。所以我在这只能给大家提供部分思路,具体的完善需要大家运用自己聪明的大脑来写出相应的优化,最后感谢你能看到这,希望此篇文章会对你有一定的帮助,respect!