在这个模拟中,采用文件来存储棋盘状况。data.txt的内容类似下面这样,0表示未下子,1表示黑子,2表示白子:
先将文件中的数据读取到一个字符数组中,然后对数组内容进行遍历判断。分横、竖、左右斜、右左斜四种情况判断。若出现一方胜的情况,则将胜负标志变量置为1或者2并跳出判断,最后根据胜负标志变量来输出哪方胜并输出取胜的起始坐标点。源代码如下:
以上方法中使用的是全棋盘判断……接tbo1988同学的意见,可以在某方落子后根据该子坐标判断一横条、一竖条、两斜条就可以了。按这个思路小改一下以后,虽然代码量没怎么减,可是效率上却是大大提高了。
以下程序流程即用户输入一个坐标,然后函数judgment根据此坐标对棋盘一横条、一竖条、两斜条进行判断,然后返回胜负标志变量。此函数基本上可以直接用于后来将基于MFC的五子棋游戏中。