当前位置 : 主页 > 网络编程 > PHP >

ZCMU—1891

来源:互联网 收集:自由互联 发布时间:2023-10-08
1891: kotomi and game Time Limit:1 Sec Memory Limit:128 MB [ ​ ​Submit​ ​][ ​ ​Status​ ​][ ​ ​Web Board​ ​] Description kotomi最近有点累,于是想玩个游戏。 kotomi九宫格玩腻了,于是想玩十六宫格


1891: kotomi and game


Time Limit: 1 Sec   Memory Limit: 128 MB

[​Submit​​][​Status​​][​Web Board​​]


Description


kotomi最近有点累,于是想玩个游戏。



kotomi九宫格玩腻了,于是想玩十六宫格。



只要满足横或竖或对角线上有3个'x'就获胜。



只能画在'.'上。



Input


输入第一行包含一个整数T(1 <= T <= 10)



接下来包含4*4矩阵,矩阵只包含'x','.','o'.



Output


如果能获胜则输出"yes",否则输出"no"


Sample Input

4

xx..

.oo.

x...

oox.

x.ox

ox..

x.o.

oo.x

x..x

..oo

o...

x.xo

o.x.

o...

.x..

ooxx

Sample Output

yes

no

yes

no


【分析】


暴力模拟一下就好了...对每个'.'寻找它的周围能不能组成3个'x',情况考虑完全就可以了,要注意有一种情况是'.'在中间比如,'x.x'


【代码】


#include <stdio.h>

char a[10][10];

int find(int i,int j)
{
if (a[i+1][j]=='x' && a[i+2][j]=='x') return 1;
if (a[i][j+1]=='x' && a[i][j+2]=='x') return 1;
if (i>2 && a[i-1][j]=='x' && a[i-2][j]=='x') return 1;
if (j>2 && a[i][j-1]=='x' && a[i][j-2]=='x') return 1;
if (a[i-1][j]=='x' && a[i+1][j]=='x') return 1;
if (a[i][j-1]=='x' && a[i][j+1]=='x') return 1;
if (a[i-1][j+1]=='x' && a[i+1][j-1]=='x') return 1;
if (a[i-1][j-1]=='x' && a[i+1][j+1]=='x') return 1;


if (i>2 && j>2 && a[i-1][j-1]=='x' && a[i-2][j-2]=='x') return 1;
if (a[i+1][j+1]=='x' && a[i+2][j+2]=='x') return 1;
if (j>2 && a[i+1][j-1]=='x' && a[i+2][j-2]=='x') return 1;
if (i>2 && a[i-1][j+1]=='x' && a[i-2][j+2]=='x') return 1;


return 0;
}

int main()
{
int pp;scanf("%d",&pp);
char f[10];
for (int i=0;i<7;i++) a[i][6]=a[6][i]=a[i][0]=a[i][5]=a[0][i]=a[5][i]='o';
while (pp--)
{
getchar();
for (int i=1;i<5;i++)
{
scanf("%s",f);
for (int j=0;j<4;j++)
a[i][j+1]=f[j];
}
for (int i=1;i<5;i++)
for (int j=1;j<5;j++)
if (a[i][j]=='.')
if (find(i,j))
{
printf("yes\n");
goto out;
}
printf("no\n");
out:;
}
return 0;
}



【本文来源:香港将军澳机房 http://www.558idc.com/hk.html 欢迎留下您的宝贵建议】
上一篇:ZCMU—1780
下一篇:没有了
网友评论