0
点赞
收藏
分享

微信扫一扫

三子棋程序

Alex富贵 2022-05-13 阅读 75

棋盘打印程序

如何在电脑上打印棋盘,一头雾水闷逼状态,当遇到问题时把问题拆分,逐个去解决。其实还是思路的重要性,不懂就学别人找方法,现在网上教程很多,学学别人的思路,但是要思考。其实不思考都不行有没有一模一样的程序等你来抄,只能一次一次的看程序苦逼啊,直到理解如何上手试试,发现试试就逝世。根本写不出来,然后再看在写,写多了就会了毕竟套路就这么都,慢慢学总会放弃的。

放弃 学会了就不用学这种思想,我才学就 感到程序这玩意可以一辈子都学不完了。边学边用边脑壳痛还要加上脱发困扰,毕竟有前辈之见,聪明绝绝子。

思路

打印棋盘顾名思义,要用到打印程序printf();,然后就是如何打印

无限的拆分

程序世界是现实世界的映射 ,整体是由个体组成的,对要打印的整体进行拆分,

先拆成无数行。

在一行中拆成无数列,找到最小组成颗粒并找到规律,然后for()循环走起。

先整体在细节

现实世界上没有相同的物质,程序世界上也没有一条程序解决所有问题,找到大体的规律先循环起来

在使用if()对其中细小的不同进行筛选, 求同存异 ,先让程序跑起来,在调试细节问题。 

void DisPlayBoard(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++)//确定列的范围
{
printf(" %c ", board[i][j]);
if (j < col - 1)//规定最后一个“|”不打印
{
printf("|");
}
}

printf("\n");//每一行分两组

if (i < row - 1)//规定最后一行“---|”不打印
{
for (j = 0; j < col; j++)
{
printf("---");
if (j < col - 1)
{
printf("|");
}
}
}

printf("\n");

}

}



三子棋程序_取模

另一种棋盘

void DisPlayBoard(char board[ROW][COL], int row, int col)
{
int i = 0;
int j = 0;
for (i = 0; i < row + 1; i++)//行 循环四次
{
for (j = 0; j < col + 1; j++)//列 循环四次
{
if (j < col)//规定“___”第四次不打印
{
printf(" ___");
}
}
printf("\n");
if(i<row)//第四行不打印下面程序
for (j = 0; j < col + 1; j++)
{
printf("|");
if (j < col)
{
printf(" %c ", board[i][j]);
}
}
printf("\n");
}
}


三子棋程序_随机数_02

开始游戏用户落子

用户落子如何实现,落子的本质就是输入数组坐标然后改变数组元素。记住 道生一,一生二,二生三,三生万物 。

输入坐标,产生奇点

                  坐标输入正确,在数组范围 

         对     (把用户输入的元素赋予该坐标)                                                          

                   坐标所对应的元素没有被使用 


奇点     (不管对错都会产生结果) 


       

           错  

                    用户坐标输入错误进入循环重新输入 

(有一个BUG,数组满了怎么办,不能一直因为错误造成死循环)

奇点产生 ,不管对错都会产生结果,对的就打印一下棋盘显示用户输入结果。

int x = 0;//接收用户输入的行坐标
int y = 0;//接收用户输入的列坐标

while (1)
{
printf("大聪明走\n");
printf("输入坐标:>\n");
scanf("%d%d", &x, &y);
if (x >= 1 && x <= ROW && y >= 1 && y <= COL)//判断用户输入的坐标有没有超出数组范围
{
if (board[x-1][y-1] == ' ')//判断棋盘是否有空位
{
board[x-1][y-1] = '*';
break;
}
else
{
printf("该坐标被占用\n");
}
}
else
{
printf("输入坐标错误,重新输入\n");
}
}

电脑落子

如何实现电脑落子

如果不考虑智能只是随机落子,可以使用函数rand(),注意函数的使用方法。

rand()%n

n 是什么,%是取模的意思,n就是阶码的意思,既是逢n进位,取模 0 到 n-1 的范围


int x = 0;
int y = 0;
printf("电脑小心翼翼的走了一步,它想赢\n");//提醒用户电脑走了一步
//调用生成随机数要先设置 srand()
while (1)//直到电脑生成对的坐标
{
x = rand() % row;//生成随机数 模3的余数是 0 1 2,正好在数组坐标范围
y = rand() % col;//生成随机数 因为模了一下 范围固定
if (board[x][y] == ' ')
{
board[x][y] = '#';
break;
}
}







举报

相关推荐

三子棋

三子棋(一)

三子棋讲解

三子棋 --- C

三子棋范例

三子棋1

三子棋游戏

实现三子棋或N子棋

0 条评论