三子棋程序的讲解(2)
2023-12-18 08:30:13
? ? ? ? 这篇博客为大家讲解三子棋程序之中的棋盘打印并且棋盘的初始化(详细代码请看三子棋代码-CSDN博客)
棋盘的初始化
????????三子棋,就是在3*3的棋盘内,两方对弈,当一方有三颗棋子在任意方向连着三颗就赢了(横、竖、斜都可以)。当我说到3*3,是否能让你想起什么?正是二维数组,假定一个数组arr,我们给他确定大小arr[3][3],这不正是棋盘的轮廓就出来了吗?3*3棋盘和3*3的二维数组;我们还应该有一个初始化棋盘的程序,因为每次下完棋之后,想要再次进行游戏,棋盘不能是满的,所以说应该每次下完一盘都应该清除棋盘上面的东西,才能让游戏反复多次。那么我们怎么让它初始化呢,且看代码
void intboard(char board[ROW][COL], int row, int col)//这里用函数的形式写,传的参数是
数组,和数组的行列大小
{
int i, j;
for (i = 0; i < row; i++)
{
for (j = 0; j < col; j++)
{
board[i][j] = ' ';//将数组全部初始化为空格
}
}
}
? ? ? ? 我们需要用两个循环变量来控制数组的行列,这样之后,我们就可以将数组内的所有元素初始化为空格,我们只需要在每次游戏结束之后调用这个函数,就可以实现棋盘的初始化了。
棋盘轮廓的打印?
? ? ? ? 我们先想一想棋盘的轮廓,是不是类似于一个“井”字形,所以说我们应该填充(__and |)来构成这个井字形
void Displayboard(char board[ROW][COL], int row, int col)
{
int i;
for (i = 0; i < row; i++)
{
//打印数据
int j;
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");
}
}
}
? ? ? ? ?这样,我们每一行都会打印(___|___|___),然后每一列都会打印(|),将二者用两个循环变量所控制,行列分别控制并且将其写出来,然后打印出来
? ? ? ? 打印出来就是我们棋盘的样子了,我们有了棋盘,就可以让玩家看,并且让玩家选择在哪里下棋了。
值得一提的是
? ? ? ? 当我们每次第一次打印棋盘之前,前面一定要先初始化棋盘,用空格去占位置(因为每个符号的大小不一样),否则就无法输出我们想要的棋盘图案。
?
文章来源:https://blog.csdn.net/Aishangyuwen/article/details/135032716
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!