共有回帖数 0 个
-
本人菜鸟,没有看别的代码,都是自己写的,所以效率可能很差,没用到指针,因为还没学到
#include stdafx.h
#define N 10
int shu(char qipan[][N]);
int hen(char qipan[][N]);
int xie_1(char qipan[][N]);
int xie_2(char qipan[][N]);
void main(void)
{
char qipan[N][N]={};
int i,x,y;
for(y=0;yN;y++)
{
for(x=0;xN;x++)
qipan[y][x]='*';
}
for(y=0;yN;y++)
{
for(x=0;xN;x++)
printf("%2c",qipan[y][x]);
printf("n");
}
printf("----------------------------------------n");
while(1)
{
printf("1P下子:");
scanf("%d,%d",&y,&x);
while(qipan[y][x]=='+'||qipan[y][x]=='-')
{
for(y=0;yN;y++)
{
for(x=0;xN;x++)
printf("%2c",qipan[y][x]);
printf("n");
}
printf("%d,%d上已有旗子,请重新下子:",y,x);
printf("----------------------------------------n");
scanf("%d,%d",&y,&x);
}
qipan[y][x]='+';
for(y=0;yN;y++)
{
for(x=0;xN;x++)
printf("%2c",qipan[y][x]);
printf("n");
}
printf("----------------------------------------n");
if(shu(qipan)==1)
{
printf("1P胜利n");
break;
}
if(hen(qipan)==1)
{
printf("1P胜利n");
break;
}
if(xie_1(qipan)==1)
{
printf("1P胜利n");
break;
}
if(xie_2(qipan)==1)
{
printf("1P胜利n");
break;
}
printf("2P下子:");
scanf("%d,%d",&y,&x);
while(qipan[y][x]=='+'||qipan[y][x]=='-')
{
for(y=0;yN;y++)
{
for(x=0;xN;x++)
printf("%2c",qipan[y][x]);
printf("n");
}
printf("%d,%d上已有旗子,请重新下子:",y,x);
scanf("%d,%d",&y,&x);
}
qipan[y][x]='-';
for(y=0;yN;y++)
{
for(x=0;xN;x++)
printf("%2c",qipan[y][x]);
printf("n");
}
printf("----------------------------------------n");
if(shu(qipan)==1)
{
printf("2P胜利n");
break;
}
if(hen(qipan)==1)
{
printf("2P胜利n");
break;
}
if(xie_1(qipan)==1)
{
printf("2P胜利n");
break;
}
if(xie_2(qipan)==1)
{
printf("2P胜利n");
break;
}
}
}
int shu(char qipan[][N])
{
int y,x,w,i,j;
for(y=0;yN-1;y++)
{
for(x=0;xN;x++)
{
w=0;
i=y;
j=x;
while(qipan[x]=='+')
{
w++;
i++;
if(w==5)
return 1;
}
w=0;
while(qipan[x]=='-')
{
w++;
i++;
if(w==5)
return 1;
}
}
}
return 0;
}
int hen(char qipan[][N])
{
int y,x,w,i,j;
for(y=0;yN;y++)
{
for(x=0;xN-1;x++)
{
w=0;
i=y;
j=x;
while(qipan[y]=='+')
{
w++;
i++;
if(w==5)
return 1;
}
w=0;
while(qipan[y]=='-')
{
w++;
i++;
if(w==5)
return 1;
}
}
}
return 0;
}
int xie_1(char qipan[][N])
{
int y,x,w,i,j;
for(y=0;yN-1;y++)
{
for(x=0;xN-1;x++)
{
w=0;
i=y;
j=x;
while(qipan[j]=='+')
{
w++;
i++;
j++;
if(w==5)
return 1;
}
w=0;
while(qipan[j]=='+')
{
w++;
i++;
j++;
if(w==5)
return 1;
}
}
}
return 0;
}
int xie_2(char qipan[][N])
{
int y,x,w,i,j;
for(y=1;yN;y++)
{
for(x=0;xN-1;x++)
{
w=0;
i=y;
j=x;
while(qipan[j]=='+')
{
w++;
i++;
j--;
if(w==5)
return 1;
}
w=0;
while(qipan[j]=='+')
{
w++;
i++;
j--;
if(w==5)
return 1;
}
}
}
return 0;
}
楼主 2015-12-17 16:35 回复
Copyright © 2010~2015 直线网 版权所有,All Rights Reserved.沪ICP备10039589号
意见反馈 |
关于直线 |
版权声明 |
会员须知