前言
情景功能描述:三子棋也称井字棋。玩家和电脑双方各持不同棋子,进行模拟下棋。一方中如果实现三子共线(一行连续相同、一列连续相同、对角线连续相同)即可获胜。
实例过程分析:
- 首先需要一个棋盘,要打印出来。
- 玩家出棋、电脑出棋——循环
- 判断输赢
第一步设计棋盘。设计完成后,如何使用程序进行编写呢?如右下图所示,把棋盘格可以分为三行,其中每一行又可以分为数据行①和分割线行②。
对此我们进行分别编写,首先对于数据行来说,又可以被分成三列。每一列都由数据 %c 以及分割线 | 组成。这样根据循环就可以大致写出棋盘。而还需要结合判断语句对棋盘进行进一步的细节调整,最终生成DispalyBoard( )函数。
出棋环节:玩家出棋,首先要判断输入位置的合法性,其次判断输入位置上是否为空,如果两者都满足,就落子即可。电脑随机出棋,需要用到rand()函数,根据之前的学习,知道要配合srand((unsigned int)time(NULL))一起使用,不要忘记头文件。最需要注意的就是随机数字的范围。最终生成PlayerMove()和ComputerMove()两个函数。
判断输赢:可以预料到的结果是——玩家胜出、电脑胜出、平局。前两种情况很有可能是棋盘格没有被占满,平局一定是棋盘格被占满,还没有分出胜负的情况。所以需要先判断棋盘格是否被占满。随后根据行、列、两条对角线是否有三个连续相同的标志,从而判断结果。
最后,程序结合上一篇文章。