Baba is you是一款由芬兰独立开发者Hempuli开发的益智解谜类游戏。游戏操作类似于推箱子,但实际规则远比推箱子更为复杂。游戏玩家操控被指定为"you"的角色,当you被改变,则玩家操纵的角色也会相应的改变,如下图,因为有"Baba is you"的字样,于是玩家初始操纵一个白色的角色 (即Baba),但是修改为了"Robot is you"后,操纵角色就变成了一个棕色的机器人 (即Robot).
这道题需要你编写一个程序,接收输入的游戏地图,之后根据给定的操作序列进行处理(三种操作:将某种物品指定为"You"、将某种物品变成另一种物品、进行移动),最后输出
经过所给操作后的新地图。下面的描述仅为本题支持的操作,可能与实际游戏有所不同。
首先输入一张n行m列的ASCII字符矩阵表示游戏
可见地图,在这道题目中,玩家所控制的角色
可以移动到地图外,并且地图之外与地图之内按照一样的方式参与计算,但是程序最终只需要输出可见地图内的部分。
地图使用"."(不包括双引号,下同)表示这个位置上没有物品,使用ASCII英文小写字符(从"a"到"z")表示不同的物品(即最多有26种物品)。不可见地图的部分初始全为"."。
玩家的操作仅支持上下左右,分别使用大写字符"W"、"S"、"A"、"D"表示,可以移动
全部当前操纵的物品的位置。
玩家操纵的游戏物品可能会改变,输入中使用语句"x is you"来声明玩家操纵的物品("you"即代表玩家),则玩家进行上下左右移动时操控的就是物品"x",如果玩家此时向上移动,则游戏世界内(即包括可见地图部分与不可见地图部分)
所有物品"x"都会向上移动一格。此语句中"x"可填写任何表示物品的小写英文字符。
物品种类也可以改变,输入使用语句"x is y"来让所有物品"x"原地变成"y",此语句中"x"和"y"可填写任何表示物品的小写英文字符。
操作序列包含q行,每行为以下三种之一:
1. "x is you":修改当前操纵的物品(操作序列的第一行保证是这种输入)。保证游戏地图上此时存在物品"x"。
并且保证q行操作的第一行一定是此类输入。 2. "x is y":将地图上所有物品"x"原地变成"y"。输入保证不会改变玩家当前正在操作的游戏物品
,但是可能会将其它物品变成与玩家当前操作物品同种类的物品。
3. 由"W"、"A"、"S"、"D"组成的字符串:表示玩家进行了这些移动操作。操作序列中所有这种输入的字符串长度之和不超过

。因为保证了被设定为"you"的物品一定存在,所以这样的操作总能操控最少一个物品(这个物品可能不在可见地图范围内)。
注:多个物品可能因为移动操作而在同一个位置上,如果某个物品将要移动的位置上已经有另外的物品,则这些物品可以同时出现在这个位置上,即物品相互之间不会阻挡。