代码实现及讲解
main()
进行一个项目的实现,首先我们可以先整体构架,然后在对具体要的要求进行细化实现。那么对于三子棋的实现,我们首先就是编写main函数,对游戏的初始页面进行设计,通过玩家的输入,能够选择是否开启游戏。下面就是实现代码:
下面为代码实现的编程页面:
initboard()和showboard()
在完成main的编写后,然后就是进入具体game函数的编写,在开始之前首先确定游戏规则,玩家执黑子(‘x’),对战电脑执白子(‘0’),然后就是游戏规则为:1三子连珠即为胜利(行,列,对角线)2.当棋盘下满时,双方和棋。在确定好游戏的规则之后,然后就是通过二维数组board[ROW][COL]的赋值实现棋盘的初始化(initboard)然后是对棋盘的显示通过showboard([ROW][COL],int row,int col)实现对棋盘的显示:下面的代码为具体的实现过程:
棋盘的显示效果:
playermove()
然后就是对玩家执行下棋操作,通过输入二维坐标(x,y)来实现对棋盘board[ROW][COL]的赋值,在这一过程,需要分为三种情况:1.输入的位置已经被占用,此时显示输入错误请从新输入;2输入的坐标超出棋盘范围,此时也是显示输入错误,请从新输入;3位置输入成功,显示玩家已完成下棋指令。因此整个过程就是通过playermove()来实现。具体代码如下:
jugderesult()
然后就是当玩家下完棋之后,然后对棋盘进行判定,看玩家是否取胜。在判定的过程又分为4种情况:
1.实现行三子连珠;2.实现列三子连珠;3.对角线三子连珠;4没有连珠,但是棋盘没有下满5没有连珠棋盘下满。当1,2,3,满足时则显示取胜。当满足4时则双方继续对战。当满足5时则双方实现平局。此过程通过jugderesult()来实现的。具体代码如下:
computerplay()
然后就是 电脑进行执琪,通过srand()函数产生随机数,然后通过rand%3(使其产生的随机数范围为1-3)对棋盘board进行赋值,最总实现电脑行棋完成,具体的代码如下:
game()
最终是通过game()函数对上面的函数进行调用,组合,最总实现三子棋的编写:
总结
三子棋游戏就是将其转换为二维数组的问题,通过二维数组坐标的形式实现下棋位置。并且需注意srand()函数,该函数就是种下一个随机种子,然后产生一个随机数列。这样就可以实现自动的产生随机的坐标,这样就间接模拟了电脑下棋。最后通过各种函数的编写实现我们想要的游戏功能。同时我们还可以进一步的优化,对电脑坐标的输入编写一些算法,能够实现聪明的和玩家一起对战的效果。