三子棋或多子棋代码的编写一般是c语言入门的基础练习,而实现这个代码,大致可分为以下几个模块。
1.游戏逻辑的测试
2.游戏代码的实现
3.代码的声明
将代码分成几个模块可以更好的管理代码,不至于显得过于臃肿。
游戏的逻辑为玩家选择开始游戏,游戏开始运行,此时玩家或电脑选择下棋,当下完5步及以上时,需要判断是否游戏结束,游戏结束有2种可能,一方获胜或者是平局。
棋盘的实现为这个代码的难点:
可以通过用二维数组来进行棋盘的实现,数组需要用空格来初始化,来达到棋盘的效果,再用嵌套循环进行打印,代码如下:
void InitBoard(char board[ROW][COL], int row, int col)//初始化
{
int i = 0;
int j = 0;
for (i = 0; i < row; i++)
{
for (j = 0; j < col; j++)
{
board[i][j] = ' ';
}
}
}
oid DisplayBoard(char board[ROW][COL],int row, int col)//棋盘实现
{
int i = 0;
for (i = 0; i < row; i++)
{
//打印分割行
//" | | "
int j = 0;
for (j = 0; j < col; j++)
{
printf(" %c ", board[i][j]);
if (j < col - 1)
printf("|");
}
printf("\n");
//"---|---|---"
if (i < row - 1)//打印分割
{
int j = 0;
for (j = 0; j < col ; j++)
{
printf("---");
if (j < col - 1)
printf("|");
}
printf("\n");
}
}
}
胜负判断:若是3*3的棋盘,无非3种结果——3条横连成一组,3条竖连成一组,两条对角线。
只需判断数组相应元素是否相等即可,同理,多子棋也是用此方法可实现。