正如我们从IBM PC AT,YouTube(请参阅视频),Wikipedia(请参阅文章)和芝麻街所了解的:
字母H
是字母表中最无情的字母!
(即使实际上是由代码页437中的两个元素组成的,实际上,这种方式更无情。)
就像外星人一样,呃...呃... 外星人,野兽不懈地追求所有敢于靠近卵子的人。他们没有理由。如果不灭,就必须压扁它们。
对于这种情况,我们将假设您已经到了最后一生,并且您在没有卵的地形中遇到了野兽(如Wikipedia屏幕快照中所示)。您没有数字键盘,只能直接向上/向下/向左/向右移动...但是这些野兽显然有一个,可以在转弯时对角移动。
野兽在其选择中的移动选择将是使与玩家的距离最小化的选择。如果距离相等,则完成平局决胜,偏爱向左+向上胜于向右+向下,但这是明确的消歧矩阵...最低的平局决胜数:
1 3 4
2 H 5
6 8 7
野兽从不睡觉,但幸运的是,它们比玩家还慢。他们每隔一圈移动一次(通过在第二个回合开始他们的交替来让玩家领先。)如果可能的话,他们必须移动,无论这是否使他们离玩家更远。
如果将一列可移动的墙壁移动到封闭的缝隙中,则可以将其压碎。这些普通的野兽每头值2点。
输入项
一对整数,指示列大小,然后按行大小。
输入行的行数,每列大小...包含实心壁(
#
),活动壁(~
),野兽(H
),播放器(O
)或仅一个空格。输入将是U,D,L,R,表示玩家尝试移动...或等待等待的W。请注意,尝试推动被阻塞的可移动墙是合法的输入,只会导致不采取任何措施。
输出量
aHHHH!
如果野兽杀死了玩家...或者如果玩家赢了而没有剩下的野兽则一无所获比分
(注意:出于调试目的和/或娱乐目的,您可能希望能够在每个步骤中输出状态;但这太长了,无法在此处发布。)
澄清说明
确保地图被实心墙包围。
谁依次移动的顺序对结果很重要。因此:玩家总是先走,然后如果您从左上到右从屏幕上扫过,则根据野兽的初始地图位置对其进行排序。(第1行的野兽移动到第2行的野兽之前,并且同一行上的两个野兽将是具有最低列号的野兽,然后移动到另一行)
对角移动的野兽可以移动到任何相邻的对角线开放空间中,而不管是否需要在墙壁之间挤压。
只要另一端有空间或野兽,玩家就可以将任何数量的可移动墙沿一条线推入。但是,尝试将一列墙壁推入没有固定在墙壁之间的野兽中时,会将野兽视为墙壁,并且不允许移动。
野兽在回合中的移动决定取决于玩家在回合开始时的位置。它对“玩家距离”的理想优化是通过“乌鸦飞翔”计算。从其正方形的中心到玩家正方形的中心测得的结果相同的任何近似值都可以。
如果由于较高优先级的野兽而无法将其作为第一顺位的行动,那么它将选择其第二个最佳选择,而不是保持原状(如果仍然可以采取行动)。
样品盒
简单粉碎
输入项
5 3
#####
#O~H#
#####
R
输出量
2
偏好矩阵->死亡
输入项
5 5
#####
#O #
# ~ #
# H#
#####
WWDW
输出量
aHHHH!
0
偏好矩阵->赢
输入项
5 5
#####
#O #
# ~ #
# H#
#####
WRD
输出量
2
等待收割者
输入项
5 5
#####
#O #
# ~ #
# H#
#####
WWW
输出量
aHHHH!
0
在Wikipedia场景中成功失败
输入项
40 23
########################################
#~ ~ ~~ ~ ~ ~~ ~ ~~ ~ ~ ~~ #
#~~ ~ ~~ ~ ~ ~~ ~ #
#~# ~~ ~~~~ ~ ~~~~ ~ ~~~ ~#
# ~ ~ ~ ~~ #~~ ~ #
#~~ ~~~ ~ ~ ~ ~ ~~ ~ ~ ~ ~ #
# ~~ ~ ~ ~ ~~~ H ~ #~ #
# O~ ~ # ~~~ ~ ~ ~~ ~ ~ ~~ #
# ~ ~H~~ ~~ ~ # ~~ ~ #
# ~~ ~ ~~~ ~~ ~~~~ ~ ~#
#~ ~ ~~~ ~ ~ ~ ~ ~~ ~~#
# ~ # ~ ~~ ~~~ ~ ~ ~ # ~#
#~ ~ ~~ ~ ~ H ~~ ~~ ~ ~ ~~~ #
# ~ ~ ~ ~ ~ ~~~ ~ #
# ~~ ~ ~ ~~ ~ ~ ~ ~ ~ #
# ~~ ~ ~ ~ ~ ~~ #
#~ ~ # ~~~~ ~ ~~~H # ~ #
# ~ ~ ~ ~ ~ ~~ ~ #
# ~ ~ #~ ~ ~~ ~ ~ ~#
# ~~ ~ ~ ~~ ~ ~ #
# ~~~ ~ ~~ ~ ~ ~ ~ #
# ~ ~ ~ ~~ ~ ~ ~ #
########################################
RRRUWWWRRRURWWWWRDRRWWRDWWWWD
输出量
8
我提供的地图,@ bobbel的移动和输出,由我和@Allbeert证实。
获奖标准
我认为这是可以打高尔夫的,所以除非有人抱怨,否则我将遵循代码高尔夫规则。
额外信用
可播放的Unicode实现,带有双倍宽字符,类似于图像!