一:三子棋编程设计思路
1:首先,三字棋的规则是三个棋子排成一条线,那这一列可以是横着,也可以是竖着的,也可以是斜着的,因此一个二维数组是很好的选择。
2:既然是下棋,自然需要一个棋盘,所以可以用“---“以及“|”创建一个棋盘,创建一个函数initboard来打印棋盘。
3:二维数组创建完成,需要创建一个函数对数组进行初始化为空格,这样打印出来的棋盘就是一片空白。
4:接下来是创建一个函数,输入玩家下棋的位置,并且判断下棋位置是否在棋盘的范围,以及那位置上是否已经有棋子。
5:创建函数输入电脑下棋的位置,由于技术有限,因此电脑下棋的位置是随机的(rand函数)。
6:每次玩家和电脑下完棋之后,都需要进行判断,判断1:是否有三颗棋子呈一条线,如果有则玩家赢,反正则判断2。
判断2:是否还有空位,如果有则继续下面的代码,反之则没有空格,由于这判断2在判断1之后,因此可以认为双方平局;
———————————————————————————————————————————
1: 首先创建一个字符二维数组 ,ROW代表行,col代表列
2:将数组初始化为空格。
在.h文件中放入定义#define ROW 3以及#define COL 3,这可以控制棋盘和数组的规模大小。
3:创建一个函数,打印棋盘,在每一行每一列的数组后面加字符‘|’,但是当列数小于col-1的时候,不打印字符‘|’。
在每一行中间加字符“---”,但是当列数小于col-1的时候,不打印字符‘---’。
函数的结果是:
4:玩家下棋:我们在二维数组中放入字符‘*’的过程就是下棋,所以需要判断棋子是否会放到数组外,以及想要下的位置是否已经有棋子。
5:电脑输入,由于我们用rand()%ROW和rand()%COL限制了电脑输入的随机二维数组横坐标小于ROW的,纵坐标小于COL,因此不需要进行判断是否越界,只判断是否是空格,如果不是,则继续随机。
6:每次下棋后,都需要一个函数(iswin)去判断这颗棋子是否能分出胜负,如果没有分出胜负,那就需要一个函数(isfull)去判断是否是平局。
7:主函数部分
代码结束。