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。