您的程序必须采用多行字符串,如下所示:
#############
#           #
#     p     #
#           #
#############
p是玩家,#是一个障碍。
现在在终端下应该是一条输入行,上面写着:
How do you want to move?
如果玩家键入l必须在没有障碍物的情况下向左走,否则,在存在障碍物的情况下,他将无法通过并且当然也不会移动,因此现在必须更新终端中的输出(并且先前的输出已清除/覆盖):
#############
#           #
#    p      #
#           #
#############
他可以输入l左,r右,u上和d下。
输入将始终为多行,但不会始终用空格填充为理想的矩形。另外,散列可以在字符串中的任何位置,并且不会始终相互连接。例如:
##  ##
#  #
## p
     #
是有效的地牢。(请注意,每行上都没有尾随空格)
如果玩家不在字符串范围内,则不必显示他。但是,如果他稍后再来,则必须再次显示。
字符串“外部”的边界是length(longest_line)by number_of_lines矩形,因此即使一行没有在右边填充空格,该位置也不会被视为超出范围。使用早期地下城的示例:
##  ##
#  #p
##  
     #
第二行现在的p没有空格,但这没关系。
最后,您的程序必须永远循环以获取输入。
测试用例
测试用例1:
####
# p#
#
####
How do you want to move?
d
####
#  #
# p
####
测试案例2:
####
  p#
   #
####
How do you want to move?
l
####
 p #
   #
####
How do you want to move?
d
####
   #
 p #
####
How do you want to move?
l
####
   #
p  #
####
How do you want to move?
l
####
   #
   #
####
How do you want to move?
r
####
   #
p  #
####
当然,这些还不完整。您的代码应该永远循环并清除每个输出之间的屏幕。
您的输出被允许以How do you want to move?\n<input>or 提示输入How do you want to move?<input>(即,您不需要在空白行上输入),并且在地牢的最后一行和提示之间也不需要空行。(但是它们不能在同一行)
不允许出现标准漏洞!这是代码高尔夫球,因此以字节为单位的最短代码胜出!
l,r,u,或d)可以是任何东西,不只是“你怎么想动”?除了打高尔夫球以外,它并不会真正影响答案。