Waving Hands oyunu bir kalem ve kağıt Magic arasında bir yerde: The Gathering ve çok ayrıntılı bir Rock Paper Scissors. Her turda, her el için sekiz hareketten birini yazabilirsiniz:
- kıkırdayan
F
ingers - önerilen
P
alm S
kestirmeW
aveD
igit işaretC
kucak- sta
B
N
othing
Geri kalanlardan öncelikli birkaç önemli kural vardır:
- Her iki eliniz de hareket ederse
P
otomatik olarak teslim olursunuz . (Bu bir basitleştirme, ancak bununla birlikte gideceğiz.) - Bir seferde sadece bir el jest yapabilir
B
.
Aynı el tarafından gerçekleştirilen bir dizi hareket, her bir büyünün belirli bir diziye bağlı olduğu bir büyü yapabilir. Bu diziler çakışabilir, ancak her hareket yalnızca tek bir büyünün son hareketi olarak kullanılabilir (böylece tek bir dönüşte en fazla iki büyü oluşturabilirsiniz). Bazı büyüler her iki el ile aynı anda bir jest yapılmasını gerektirir.
Göreviniz, her bir el için bir el hareketi listesi verildiğinde, mevcut sırayla hangi büyülerin atılabileceğini belirlemek. Her el için, listedeki son harf geçerli dönüş için seçilen hareketi temsil eder.
İşte hareket dizilerinin listesi. Büyük harfler tek elle yapılan bir jest, küçük harfler her iki elle yapılan bir hareketi ifade eder.
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
Evet Lightning bolt
ve Counterspell
her biri iki farklı diziye sahip.
Önceden işlenmediği sürece STDIN, komut satırı bağımsız değişkeni veya işlev bağımsız değişkeni aracılığıyla herhangi bir uygun liste veya dize biçiminde girdi alan bir program veya işlev yazabilirsiniz. Büyü çiftlerini dönüş değeri veya STDOUT'a yazdırabilirsiniz. Yine, çıktı kesin olmadığı sürece uygun herhangi bir liste veya dize biçimini kullanabilirsiniz.
Sol ve sağ el için dizilerin aynı uzunlukta olduğunu ve geçerli olduklarını varsayabilirsiniz (özellikle, B
asla aynı anda iki el tarafından yapılmayacaktır). Girişin yalnızca büyük harf içereceğini unutmayın . Küçük harfler yalnızca yukarıdaki listede, her iki elin de aynı (büyük harf) hareketi yapması gerektiğini belirtmek için kullanılır.
İki el hareketi ile sona eren büyüler için tek bir büyü yapmalısınız. Bir el büyü yapamazsa, bunun yalnızca tire işareti içeren bir dize ile belirtilmesi gerekir -
.
Bu kod golf, yani en kısa cevap (bayt cinsinden) kazanır.
Örnekler
Her örnek üç satırdan oluşur: sol el dizisi, sağ el dizisi (her iki giriş; en sağdaki hareket en son olanıdır) ve tüm olası yazım kombinasyonlarının listesi (çıkış).
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"]]