先上代码,这是一个简单的的五子棋程序,只有人人对战,第一个人下的子用数字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;
}