U326438 2D的3D游戏之寻找路线
题目背景
该题目我自己都没做出来!!所以o.O……目前没有测试数据。
我之前做了一个用2D的数字表示3D的方块的游戏,听我细细道来。
题目描述
初一上我们学习了三个视图。从三个视图的俯视图来看一个物体,可以把方块的高度依次表示,例如:
```cpp
1 3 2
```
这个就表示了一个领奖台的方块样式。
在2D's 3D Game中,会有一个n * m的地图,地图的每个数就代表了对应位置的方块的高度。
现在地图认识完毕,我们来认识游戏的玩法。玩家需要从四个角(左上1,右上2,左下3,右下4)选择两个,一个作为起始点,一个作为结束点。例如选择1 4,玩家从左上角出生,移动到右下角就赢了。
移动的规则:
1.玩家可以在上下左右四个方向移动,每次能平移、上一格、下一格、下两格。(就是说你不能二段跳,最多下两格)
```cpp
x 1 x
2 4 4
x 3 x
```
例如:图中,可以从map[1][1]去到map[1][0],map[1][2]或map[2][1],并不能从map[1][1]去到map[0][1](那样会摔死)。
2.玩家可以在左上、右上、左下和右下四个方向移动,每次可以平移;符合以下条件时,可以下一格或下两格:
标记
| 起始点a | 障碍b |
| :----------: | :----------: |
| **障碍c** | **目标点d** |
当b≤a且c≤a时,可以从a到d。
例如:
```cpp
2 3
4 2
```
可以从map[1][0]去到map[0][1],其他的斜方向运动都不可以。
题目要求:
计算出从四个角中的1到2,1到3,1到4等等,每个起始点到结束点的最短路径。
**移动的上 下 左 右分别输出w a s d,左上 右上 左下 右下分别输出q e z c,输出路径时不带空格。**
提示:当出现类似→↓和↘同时可以走的情况,仅保留后者。
如果你想玩这个游戏,而不是找最短路径,请下载附件。
输入格式
第一行为n和m,
接下来n行为n * m的地图。
输出格式
第一行是1到2(左上到右上)的最短路径;
第二行是1到3;
第三行是1到4;
第四行是2到1;
第五行是2到3;
第六行是2到4;
第七行是3到1;
第八行是3到2;
第九行是3到4;
第十行是4到1;
第十一行是4到2;
第十二行是4到3。
说明/提示
数据约定:
n≤32,m≤32;
地图中每个数都≤10。