UVa 227 Puzzle AC

来源:互联网 发布:win10启用不了网络发现 编辑:程序博客网 时间:2024/05/22 17:41
#include "stdio.h"#include "string.h"#include "stdlib.h"#include "ctype.h"#define maxn 85#define swap(a,b) a^=b^=a^=b//交换abint main(){int T,n;int count=0;char s[5][5];char c;int x,y;char sequence[maxn];int OFF=0;int i;int time;memset(s,0,sizeof(s));while (gets(s[0])){OFF=0;if (s[0][0]=='Z') break;gets(s[1]);gets(s[2]);gets(s[3]);gets(s[4]);for (i=0;i<5;i++){for (int j=0;j<5;j++){if(s[i][j]==' ') {x=i;y=j;}}}i=0;while ((c=getchar())!='0')//直到输入结束{if (isalpha(c)!=0){sequence[i]=c;i++;}}getchar();//拿走\nn=i;for (i=0;i<n;i++){switch (sequence[i]){case 'A':if(x-1>=0) {swap(s[x][y],s[x-1][y]);x--;} else OFF=1;break;case 'B':if(x+1<=4) {swap(s[x][y],s[x+1][y]);x++;} else OFF=1;break;case 'L':if(y-1>=0) {swap(s[x][y],s[x][y-1]);y--;} else OFF=1;break;case 'R':if(y+1<=4) {swap(s[x][y],s[x][y+1]);y++;} else OFF=1;break;case '0':break;}}if (count>0) putchar('\n');printf("Puzzle #%d:\n",++count);for (int i=0;i<5;i++){if (OFF==1){printf("This puzzle has no final configuration.\n");break;}printf("%c %c %c %c %c\n",s[i][0],s[i][1],s[i][2],s[i][3],s[i][4]);}}system("pause");return 0;}

原创粉丝点击