C语言会写三子棋什么水平

Python015

C语言会写三子棋什么水平,第1张

就是初学者,入门的水平。

是黑白棋的一种。三子棋是一种民间传统游戏,又叫九宫棋、圈圈叉叉、一条龙、井字棋等。将正方形对角线连起来,相对两边依次摆上三个双方棋子,只要将自己的三个棋子走成一条线,对方就算输了。但是,有很多时候会出现和棋的情况。游戏规则:如果两个人都掌握了技巧,那么一般来说就是平棋。一般来说,第二步下在中间最有利(因为第一步不能够下在中间),下在角上次之,下在边上再次之。最大的好处就是随便找个地方就可以玩这个简单而有趣的游戏了。

水平是一个词语,有多种不同解释,指平行于水面的水平线,又可用于表示在某一专业方面所达到的高度,也可表示统计学水平(Level),在铁道工程上,水平是指线路左右两股钢轨顶面的相对高差。

#include<stdio.h>

int main()

{

void picture(char a[3][3])

int Osheng(char a[3][3])

int Xsheng(char a[3][3])

int ping(char a[3][3])

int i,j,x,y

char a[3][3]

for(i=0i<3i++)

for(j=0j<3j++)

a[i][j]=' '

picture(a)

while(1)

{

int a1=1

while(1)//下X子

{

for(a1)

{

printf("请输入O子下的位置: ")//输入o子的位置

scanf("%d%d",&x,&y)

if(a[x][y]=='O'||a[x][y]=='X')//判断是否已有

{

printf("已有子请重下")

continue

}

else if(x>=3||y>=3)

{

printf("输入错误请重输")

continue

}

else

{

a[x][y]='O'

a1=0

}

break

}

break

}

picture(a)//下好O子后将棋盘显示

if(Osheng(a))

{

printf("O子获胜")

break

}

while(1)//下X子

{

printf("请输入X子下的位置: ")//输入O子的位置

scanf("%d%d",&x,&y)

if(a[x][y]=='O'||a[x][y]=='X')//判断是否已有子

{

printf("已有子请重下")

continue

}

else if(x>=3||y>=3)

{

printf("输入错误请重输")

printf("请输入X子下的位置: ")

scanf("%d%d",&x,&y)

continue

}

a[x][y]='X'

break

}

picture(a)

if(Xsheng(a))

{

printf("X子获胜")

break

}

if(ping(a))

{

printf("平局")

break

}

}

int Osheng(char a[3][3])

{

int i,j

for(i=0i<3i++)

for(j=0j<3j++)

if(a[i][j]=='O'&&a[i][j+1]=='O'&&a[i][j+2]=='O')

return 1

for(i=0i<3i++)

for(j=0j<3j++)

if(a[i][j]=='O'&&a[i+1][j]=='O'&&a[i+2][j]=='O')

return 1

if(a[1][1]=='O'&&a[2][2]=='O'&&a[3][3]=='O')

return 1

if(a[1][3]=='O'&&a[2][2]=='O'&&a[3][1]=='O')

return 1

return 0

}

int Xsheng(char a[3][3])【就是在这里错的】

{

int i,j

for(i=0i<3i++)

for(j=0j<3j++)

if(a[i][j]=='X'&&a[i][j+1]=='X'&&a[i][j+2]=='X')

return 1

for(i=0i<3i++)

for(j=0j<3j++)

if(a[i][j]=='X'&&a[i+1][j]=='X'&&a[i+2][j]=='X')

return 1

if(a[1][1]=='X'&&a[2][2]=='X'&&a[3][3]=='X')

return 1

if(a[1][3]=='X'&&a[2][2]=='X'&&a[3][1]=='X')

return 1

return 0

}

int ping(char a[3][3])

{

int i,j

for(i=0i<3i++)

for(j=0j<3j++)

{

if(a[i][j]==' ')

return 0

}

return 1

}

void picture(char a[3][3])

{

printf("%c|%c|%c\n",a[0][0],a[0][1],a[0][2])

printf("-+-+-\n")

printf("%c|%c|%c\n",a[1][0],a[1][1],a[1][2])

printf("-+-+-\n")

printf("%c|%c|%c\n",a[2][0],a[2][1],a[2][2])

}