您的位置:首页 > 其它

UVA - 227 Puzzle

2015-10-02 15:29 281 查看
#include <stdio.h>

#include <string.h>

int main()

{

int i,j,len,kase=0,flag=0;

char st[10][10],ord[1000];

while(gets(st[0]))

{

if(st[0][0]=='Z') break;

if(flag==1) printf("\n");

flag=1;

int a,b;

int k=0;

int ans=0;

for(i=1;i<5;i++)

gets(st[i]);

while(~scanf("%c",&ord[k]))

{

if(ord[k]=='0') break;

k++;

}

getchar();

len=strlen(ord);

for(i=0;i<5;i++)

for(j=0;j<5;j++)

{

if(st[i][j]==' ')

{

a=i;

b=j;

i=100;

break;

}

}

printf("Puzzle #%d:\n",++kase);

for(i=0;i<len;i++)

{

if(ord[i]=='0') break;

if(ord[i]=='A')

{

if(a==0)

{

printf("This puzzle has no final configuration.\n");

ans=1;

break;

}

int t=st[a][b];

st[a][b]=st[a-1][b];

st[a-1][b]=t;

a=a-1;

}

else if(ord[i]=='B')

{

if(a==4)

{

printf("This puzzle has no final configuration.\n");

ans=1;

break;

}

int t=st[a][b];

st[a][b]=st[a+1][b];

st[a+1][b]=t;

a=a+1;

}

else if(ord[i]=='L')

{

if(b==0)

{

printf("This puzzle has no final configuration.\n");

ans=1;

break;

}

int t=st[a][b];

st[a][b]=st[a][b-1];

st[a][b-1]=t;

b=b-1;

}

else if(ord[i]=='R')

{

if(b==4)

{

printf("This puzzle has no final configuration.\n");

ans=1;

break;

}

int t=st[a][b];

st[a][b]=st[a][b+1];

st[a][b+1]=t;

b=b+1;

}

}

if(ans==0)

{

for(i=0;i<5;i++)

{

printf("%c",st[i][0]);

for(j=1;j<5;j++)

printf(" %c",st[i][j]);

printf("\n");

}

memset(st,0,sizeof(st));

memset(ord,0,sizeof(st));

}

}

return 0;

}

心得:没什么好说的,调试比较麻烦= =
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: