fivechess
#include <stdio.h>char str[10][10];
void init()
{
int i,j;
printf(" ");
for(i=0;i<10;i++)
printf("%2d",i+1);
printf("\n");
for(i=0;i<10;i++)
{
printf("%2d",i+1);
for(j=0;j<10;j++)
{
str[i][j]='_';
printf("%2c",str[i][j]);
}
printf("\n");
}
}
void print()
{
int i;
int j;
printf(" ");
for(i=0;i<10;i++)
printf("%2d",i+1);
printf("\n");
for(i=0;i<10;i++)
{
printf("%2d",i+1);
for(j=0;j<10;j++)
{
printf("%2c",str[i][j]);
}
printf("\n");
}
}
bool tell(int i,int j)
{
if(str[i][j]!='_')
return 0;
return 1;
}
int drew(char c,int x,int y)
{
if(tell(x,y))
{
str[x][y]=c;
print();
return 0;
}
else
{
printf("输入有误!\n");
return 1;
}
}
int defi(char c,int x, int y)
{
int nu1 = 0;
int nu2 = 0;
int i;
int flag=0;
while(1)
{
/*************水平方向检测************/
for(i=0;str[x][y+i]==c;i++)
{
if(y+i>9)
break;
if(str[x][y+i]==c)
nu1++;
}
for(i=1;str[x][y-i]==c;i++)
{
if(y-i<0)
break;
if(str[x][y-i]==c)
nu2++;
}
if(nu2+nu1>=5)
{
flag = 1;
break;
}
/*************垂直方向检测************/
nu1=0;
nu2=0;
for(i=0;str[x+i][y]==c;i++)
{
if(y+i>9)
break;
if(str[x+i][y]==c)
nu1++;
}
for(i=1;str[x-i][y]==c;i++)
{
if(x-i<0)
break;
if(str[x-i][y]==c)
nu2++;
}
if(nu2+nu1>=5)
{
flag = 1;
break;
}
/*************二、四象限检测************/
nu1=0;
nu2=0;
for(i=0;str[x+i][y+i]==c;i++)
{
if(y+i>9||x+i>9)
break;
if(str[x+i][y+i]==c)
nu1++;
}
for(i=1;str[x-i][y-i]==c;i++)
{
if(x-i<0||y-i<0)
break;
if(str[x-i][y-i]==c)
nu2++;
}
if(nu2+nu1>=5)
{
flag = 1;
break;
}
/*************一、三象限检测************/
nu1=0;
nu2=0;
for(i=0;str[x+i][y-i]==c;i++)
{
if(y-i<0||x+i>9)
break;
if(str[x+i][y-i]==c)
nu1++;
}
for(i=1;str[x-i][y+i]==c;i++)
{
if(x-i<0||y+i>9)
break;
if(str[x-i][y+i]==c)
nu2++;
}
if(nu2+nu1>=5)
{
flag = 1;
break;
}
break;
}
if(flag==1)
return 1;
return 0;
}
void game()
{
int x,y;
while(1)
{
int d=1;
while(d)
{
printf("黑棋落子!请输入坐标:\n");
scanf("%d %d",&x,&y);
d=drew('X',x-1,y-1);
}
if(defi('X',x-1,y-1)) //判断胜负函数
{
printf("黑子获胜!");
break;
}
int b=1;
while(b)
{
printf("白棋落子!请输入坐标:\n");
scanf("%d %d",&x,&y);
b=drew('O',x-1,y-1);
}
if(defi('O',x-1,y-1)) //判断胜负函数
{
printf("白子获胜!");
break;
}
}
}
void main()
{
init();
game();
}
发个简易的五子棋 麻烦有兴趣的朋友帮测试下