游戏《挥舞的双手》介于纸笔魔术:聚会和精心制作的剪刀石头布之间。每转一圈,您就为每个手写下八个手势之一:
- 扭动的
F
姜 - 提供的
P
alm S
小憩W
aveD
指点C
圈数- sta
B
N
整理
几乎没有其他重要的优先规则:
- 如果双手示意,
P
您将自动投降。(这是一种简化,但是我们继续。) - 一次只能用一只手做手势
B
。
同一只手执行的一系列手势可以投射一个咒语,其中每个咒语都与一个特定序列相关。这些序列可以重叠,但是每个手势只能用作单个咒语的最终手势(因此,您一次最多可以创建两个咒语)。有些咒语要求双手同时做出手势。
您的任务是给定每只手的手势列表,以确定在当前回合中可以施放哪些咒语。对于每只手,列表中的最后一个字母代表当前回合选择的手势。
这是手势序列的列表。大写字母表示单手执行的手势,小写字母表示双手进行的手势。
B Stab
cDPW Dispel magic
cSWWS Summon elemental
cw Magic mirror
DFFDD Lightning bolt
DFPW Cure heavy wounds
DFW Cure light wounds
DPP Amnesia
DSF Confusion
DSFFFc Disease
DWFFd Blindness
DWSSSP Delayed effect
DWWFWc Raise dead
DWWFWD Poison
FFF Paralysis
FPSFW Summon troll
FSSDD Fireball
P Shield
p Surrender
PDWP Remove enchantment
PPws Invisibility
PSDD Charm monster
PSDF Charm person
PSFW Summon ogre
PWPFSSSD Finger of death
PWPWWc Haste
SD Missile
SFW Summon goblin
SPF Antispell
SPFPSDW Permanency
SPPc Time stop
SSFP Resist cold
SWD Fear
SWWc Fire storm
WDDc Lightning bolt
WFP Cause light wounds
WFPSFW Summon giant
WPFD Cause heavy wounds
WPP Counterspell
WSSc Ice storm
WWFP Resist heat
WWP Protection from evil
WWS Counterspell
是的,Lightning bolt
而且Counterspell
各有两个不同的序列。
您可以编写程序或函数,只要不经过预处理,就可以通过STDIN,命令行参数或函数参数以任何方便的列表或字符串格式接受输入。您可以通过返回值或通过打印到STDOUT输出成对的咒语。同样,您可以使用任何方便的列表或字符串格式,只要输出是明确的即可。
您可以假设左右手的序列长度相同,并且它们是有效的(尤其是B
永远不会由两只手同时执行)。请注意,输入将仅包含大写字母。小写字母仅在上面的列表中使用,表示两只手需要执行相同的(大写)手势。
对于以双手手势结尾的咒语,您应该只输出一个咒语。如果一只手无法执行咒语,则需要用仅包含连字符的字符串来表示,-
。
这是代码高尔夫球,因此最短的答案(以字节为单位)获胜。
例子
每个示例包括三行:左手序列,右手序列(均为输入;最右边的手势为最新手势)以及所有可能的拼写组合的列表(输出)。
WFP
WWS
[["Cause light wounds","Counterspell"],["Shield","Counterspell"]]
SD
BB
[["Missile","Stab"]]
WWP
WPP
[["Surrender"]]
DFW
CCW
[["Cure light wounds","-"]]
FFW
WWF
[["-","-"]]
DCW
CCW
[["Magic mirror"]]
WFPSFW
PPDDPP
[["Summon goblin","Shield"],["Summon ogre","Shield"],["Summon troll","Shield"],
["Summon giant","Shield"],["Summon goblin","Amnesia"],["Summon ogre","Amnesia"],
["Summon troll","Amnesia"],["Summon giant","Amnesia"]]
BSWWS
CSWWS
[["Counterspell","Counterspell"]]
CSWWS
CSWWS
[["Counterspell","Counterspell"],["Counterspell","Summon elemental"],
["Summon elemental","Counterspell"],["Summon elemental","Summon elemental"]]
PWPWWC
BBSPPC
[["Haste"],["Time stop"]]