UVA227 谜题

来源:互联网 发布:漏洞提交平台源码 编辑:程序博客网 时间:2024/05/17 07:12
#include <stdio.h>//k:保证一个字母执行一次,z:如果找不到空格立刻退出并输出非法指令,l:如果l=0输出非法指令
int main()
{
 char a[][5]={'T','R','G','S','J','X','D','O','K','I','M',' ','V','L','N','W','P','A','B','E','U','Q','H','C','F'};
 char b,temp;
 int k,l=1;
 while((b=getchar())!='0')
 {
  k=1;
  int z=1;
  if(b!='A'&&b!='B'&&b!='R'&&b!='L')
  {
   l=0;
   break;
  }
  for(int i=0;i<5;i++)
  {
   for(int j=0;j<5;j++)
   {
    if(a[i][j]==' ')
    {
     z=0;
     if(b=='A')
     {
      temp=a[i][j];
      a[i][j]=a[i-1][j];
      a[i-1][j]=temp;
      k=0;
     }
     else if(b=='B')
     {
      temp=a[i][j];
      a[i][j]=a[i+1][j];
      a[i+1][j]=temp;
      k=0;
     }
     else if(b=='L')
     {
      temp=a[i][j];
      a[i][j]=a[i][j-1];
      a[i][j-1]=temp;
      k=0;
     }
     else if(b=='R')
     {
      temp=a[i][j];
      a[i][j]=a[i][j+1];
      a[i][j+1]=temp;
      k=0;
     }
     
    }
    if(k==0)
     break;
   }
   if(k==0)
    break;
  }
  if(z)
  {
   l=0;
   break;
  }
 }
 if(l==0)
  puts("This puzzle has no final configuration.");
 else
 {
  for(int i=0;i<5;i++)
  {
   for(int j=0;j<5;j++)
    printf("%c ",a[i][j]);
   printf("\n");
  }
 }
 return 0;
}