算法竞赛第三章 习题3-5 谜题

#include<iostream>
using namespace std;
//建立5*5表格
char biao[5][5];
int main()
{
 //填充表格  初始位置 x行 y列 cin不读空格 原来傻冒用cin
 int x , y ;
 char p; int t=0;
 while (cin.get(p))
 {
  if (t < 25)
  {
   biao[t / 5][t % 5] = p;
   if (biao[t / 5][t % 5] == ' ')
   {
    x = t / 5; y = t % 5;
   }
  }
  else break;
  t++;
 }
 cout << x <<" "<< y;
 //输入指令,以0结束
 char c;
 while (cin >> c)
 {
  //如果为0,结束并输出,其他位置交换值并改变末位置
  if (c == '0')
  {
   for (int i = 0; i <5 ; i++)
   {
    for (int k = 0; k < 5; k++)
    {
     cout << biao[i][k]<<" ";
    }
    cout << endl;
   }

  }
  //如果不为零
  else
  {
   //往上
   if (c == 'A')
   {
    if (x - 1 < 0) cout << "This puzzle has no final configuration";
    else
    {
     biao[x][y] = biao[x - 1][y];
     biao[x - 1][y] = ' ';
     x--;
    }
   }
   //往下
   if (c == 'B')
   {
    if (x + 1 >4) cout << "This puzzle has no final configuration";
    else
    {
     biao[x][y] = biao[x + 1][y];
     biao[x + 1][y] = ' ';
     x++;
    }
   }
   //往左
   if (c == 'L')
   {
    if (y-1<0) cout << "This puzzle has no final configuration";
    else
    {
     biao[x][y] = biao[x][y-1];
     biao[x][y-1] = ' ';
     y--;
    }
   }
   //往右
   if (c == 'R')
   {
    if (y +1>4) cout << "This puzzle has no final configuration";
    else
    {
     biao[x][y] = biao[x][y + 1];
     biao[x][y + 1] = ' ';
     y++;
    }
   }
  }
 
 }
 system("pause");
 return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值