第一次用c语言写的五子棋,求大神修改

本文介绍了一个简单的五子棋程序,详细解释了如何实现AI对战功能,包括图形绘制、棋盘布局、玩家输入处理、AI判断胜负等关键步骤。通过代码示例,展示了五子棋游戏的基本实现逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先上代码,这是一个简单的的五子棋程序,只有人人对战,第一个人下的子用数字5表示,第二个人的用数字6表示,pandhuan9()这个函数好像有问题

,求指导。

#include <stdio.h>

#include <stdlib.h>
void draw1()/*第一个图形*/ 
{
printf("*********************************\n");
printf(" Play game happy\n");
printf("*********************************\n");


}
void draw2()/*画棋盘*/ 
{
int a[10][10],i,n,k,o;
k=0,o=1;
for (i=0;i<10;i++)
{
for (n=0;n<10;n++)
{
if (i==0)
{
a[i][n]=k;
k++;
}
else if (n==0)
{
a[i][n]=o;
o++;
}
else
{
a[i][n]=0;
}
printf("%d ",a[i][n]); 
}
putchar('\n');
}
}
void draw3(int a[10][10],int o,int x,int y)
{
int m,k,i,n;
for (i=0;i<10;i++)
{
for (n=0;n<10;n++)
{
if (a[i][n]!=5&&a[i][n]!=6)
a[i][n]=0;
}
}
if (o==1)
a[x][y]=5;
if (o==2)
a[x][y]=6;
m=0,k=0;
for (i=0;i<10;i++)
{
for (n=0;n<10;n++)
{
if (i==0)
{
a[i][n]=m;
m++;
}
if (n==0)
{
a[i][n]=k;
k++;
}
printf("%d ",a[i][n]);
}
putchar('\n');
}
}
void draw4()/*胜利*/ 
{
printf("**********************************************\n");
printf(" 你赢了\n");
printf("**********************************************\n"); 

}

void panduan5(int a[10][10])
{
int i,n,m,y,x;
for (i=1;i<=9;i++)
{
for (n=1;n<=9;n++)
{
if (a[i][n]==5)
{
if (n+4>9)
continue;
m=0;
for (y=n;y<=n+4;y++)
{
if (a[i][y]==5)
m++;
}
if (m==5)
{
draw4();
x=10;
printf("一号\n");
break;
}
else
continue;
}
}
if (x==10)
break;
}
}
void panduan6(int a[10][10])
{
int i,n,m,y,x;
for (i=1;i<=9;i++)
{
for (n=1;n<=9;n++)
{
if (a[i][n]==6)
{
if (n+4>9)
continue;
m=0;
for (y=n;y<=n+4;y++)
{
if (a[i][y]==6)
m++;
}
if (m==5)
{
draw4();
x=10;
printf("二号\n");
break;
}
else
continue;
}
}
if (x==10)
break;
}
}

void panduan7(int a[10][10])
{
int i,n,m,y,x;
for (i=1;i<=9;i++)
{
for (n=1;n<=9;n++)
{
if (a[i][n]==5)
{
if (i+4>9)
continue;
m=0;
for (y=i;y<=i+4;y++)
{
if (a[y][n]==5)
m++;
}
if (m==5)
{
draw4();
x=10;
printf("一号\n"); 
break;
}
else
continue;
}
}
if (x==10)
break;
}
}
void panduan8(int a[10][10])
{
int i,n,m,y,x;
for (i=1;i<=9;i++)
{
for (n=1;n<=9;n++)
{
if (a[i][n]==6)
{
if (i+4>9)
continue;
m=0;
for (y=i;y<=i+4;y++)
{
if (a[y][n]==6)
m++;
}
if (m==5)
{
draw4();
x=10;
printf("二号\n"); 
break;
}
else
continue;
}
}
if (x==10)
break;
}
}
void panduan9(int a[10][10])
{
int i,n,m,y,x,w;
for (i=1;i<=9;i++)
{
for (n=1;n<=9;n++)
{
if (a[i][n]==5)

if (i+4>9)
continue;
if (n+4>9)
continue;
m=0;
for (x=i,y=n;y<=n+4;y++,x++)
{
if (a[x][y]==5)
{
m++;
}
}
if (m==5)
{
draw4();
w=10;
printf("1号\n"); 
break;
}
else
continue;
}
}
if (w==10)
break;
}
}
void panduan10(int a[10][10])
{
int i,n,m,y,x,w;
for (i=1;i<=9;i++)
{
for (n=1;n<=9;n++)
{
if (a[i][n]==5)
{
if (i+4>9)
continue;
if (n-4<1)
continue;
m=0;
for (x=i,y=n;x<=i+4;x++,y--)
{
if (a[x][y]==5)
m++;
}
if (m==5)
{
draw4();
w=10;
printf("1号\n"); 
break;
}
else
continue;
}
}
if (w==10)
break;
}
}
void panduan11(int a[10][10])
{
int i,n,m,y,x,w;
for (i=1;i<=9;i++)
{
for (n=1;n<=9;n++)
{
if (a[i][n]==6)

if (i+4>9)
continue;
if (n+4>9)
continue;
m=0;
for (x=i,y=n;y<=n+4;y++,x++)
{
if (a[x][y]==6)
{
m++;
}
}
if (m==5)
{
draw4();
w=10;
printf("2号\n"); 
break;
}
else
continue;
}
}
if (w==10)
break;
}
}

void panduan12(int a[10][10])
{
int i,n,m,y,x,w;
for (i=1;i<=9;i++)
{
for (n=1;n<=9;n++)
{
if (a[i][n]==6)
{
if (i+4>9)
continue;
if (n-4<1)
continue;
m=0;
for (x=i,y=n;x<=i+4;x++,y--)
{
if (a[x][y]==6)
m++;
}
if (m==5)
{
draw4();
w=10;
printf("2号\n"); 
break;
}
else
continue;
}
}
if (w==10)
break;
}

int main()
{
int z,x,y,a[10][10],i,n,o;
draw1();
draw2();
for (i=0;i<10;i++)/*开始输入棋子*/ 
for (n=0;n<10;n++)
a[i][n]=0;
while (1)
{
scanf("%d%d%d",&o,&x,&y); 
draw3(a,o,x,y);/*结束输入*/
panduan5(a);
panduan6(a);
panduan7(a);
panduan8(a);
panduan9(a);
panduan10(a);
panduan11(a);
panduan12(a);

system("pause");
return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值