您的程序必须采用多行字符串,如下所示:
#############
# #
# 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
)可以是任何东西,不只是“你怎么想动”?除了打高尔夫球以外,它并不会真正影响答案。