Aus IBM PC AT, YouTube (siehe Video) , Wikipedia (siehe Artikel) und Sesamstraße haben wir gelernt :
Der Buchstabe H
ist der gnadenloseste Buchstabe des Alphabets !
(Auch wenn es tatsächlich aus zwei Elementen in Code Page 437 besteht . Auf diese Weise ist es sogar noch gnadenloser.)
Wie die Außerirdischen in ... ähm ... Außerirdischen verfolgen die Bestien unerbittlich alle, die es wagen würden, sich ihren Eiern zu nähern. Es gibt keine Gründe dafür. Sie müssen sie zerquetschen, wenn Sie nicht zugrunde gehen wollen.
In diesem Szenario gehen wir davon aus, dass Sie Ihr letztes Leben hinter sich haben und einfache Bestien in einem Gelände ohne Eier getroffen haben (wie im Wikipedia-Screenshot). Sie haben keine Zehnertastatur und können sich nur direkt auf / ab / links / rechts bewegen ... aber die Bestien haben anscheinend eine und können sich diagonal bewegen, wenn sie an der Reihe sind.
Die Wahl der Bewegung eines Tieres unter seinen Optionen ist diejenige, die die Entfernung vom Spieler minimiert. Wenn die Abstände gleich sind, wird das Binden bevorzugt mit Links + Oben + Rechts + Unten ausgeführt, aber hier ist die Disambiguierungsmatrix, um es explizit darzustellen ... niedrigste Zahl zum Binden:
1 3 4
2 H 5
6 8 7
Ein Tier schläft nie, aber sie sind glücklicherweise etwas langsamer als der Spieler. Sie bewegen sich alle zwei Runden (geben dem Spieler einen Vorsprung, indem sie ihre Wechsel in der zweiten Runde beginnen). Sie müssen sich bewegen, wenn ein Zug möglich ist, unabhängig davon, ob dies sie weiter vom Spieler entfernt.
Du zerquetschst ein Tier, wenn du einen Zug beweglicher Mauern in eine geschlossene Lücke setzt. Diese einfachen Bestien sind 2 Punkte pro Kopf wert.
Eingang
Ein Paar von Ganzzahlen, die die Größe einer Karte in Spalten und dann in Zeilen angeben.
Zeilenanzahl der Eingabezeilen, jede der Spaltengröße ... enthält entweder eine feste Wand (
#
), eine bewegliche Wand (~
), ein Biest (H
), den Spieler (O
) oder nur ein Leerzeichen.Eingabe, die entweder U, D, L, R ist und einen Zugversuch des Spielers anzeigt ... oder W, um einfach zu warten. Beachten Sie, dass der Versuch, eine bewegliche Wand zu drücken, die blockiert ist, eine legale Eingabe ist und nur zu keiner Aktion führt.
Ausgabe
aHHHH!
wenn die Bestien den Spieler getötet haben ... oder nichts, wenn der Spieler gewonnen hat, ohne dass noch Bestien übrig sindDie Punktzahl
(Hinweis: Zu Debugging- und / oder Unterhaltungszwecken möchten Sie wahrscheinlich den Status bei jedem Schritt ausgeben können. Dies ist jedoch zu lang, um hier einen Beitrag zu verfassen.)
Klarstellungen
Karten werden garantiert von massiven Wänden begrenzt.
Die Reihenfolge, wer sich in einer Runde bewegt, ist entscheidend für das Ergebnis. Also: Der Spieler geht immer zuerst, dann erhalten die Bestien eine Reihenfolge basierend auf ihrer anfänglichen Kartenposition, wenn Sie von links nach rechts oben nach unten über den Bildschirm gefegt haben. (Eine Bestie aus Reihe 1 bewegt sich vor einer Bestie aus Reihe 2, und zwei Bestien in derselben Reihe wäre es diejenige mit der niedrigsten Spaltennummer, die sich vor der anderen bewegen würde.)
Sich diagonal bewegende Bestien können sich in jeden offenen, angrenzenden diagonalen Raum bewegen, unabhängig davon, ob ein Quetschen zwischen den Wänden erforderlich ist.
Ein Spieler kann eine beliebige Anzahl von beweglichen Wänden in eine Reihe schieben, vorausgesetzt, am anderen Ende befindet sich ein Feld oder ein Tier. Wenn Sie jedoch versuchen, eine Reihe von Mauern in ein Tier zu stoßen, das nicht zwischen Mauern eingeklemmt ist, wird das Tier als Mauer behandelt und der Umzug wird nicht zugelassen.
Die Zugentscheidung eines Tieres während eines Zuges basiert auf der Position des Spielers zu Beginn des Zuges. Die gewünschte Optimierung der "Entfernung zum Spieler" erfolgt durch eine "Luftlinie" -Berechnung. Jegliche Annäherung, die das gleiche Ergebnis ergibt, gemessen von der Mitte des Quadrats bis zur Mitte des Spielerquadrats, ist in Ordnung.
Wenn ein Tier nicht in der Lage ist, den ersten Zug in einer Runde zu machen, weil ein Tier mit höherer Priorität seinen Platz eingenommen hat, wird es die nächstbeste Wahl treffen, anstatt an Ort und Stelle zu bleiben (falls ein Zug noch möglich ist).
Musterkoffer
Einfaches Crush
Eingang
5 3
#####
#O~H#
#####
R
Ausgabe
2
Präferenzmatrix -> Tod
Eingang
5 5
#####
#O #
# ~ #
# H#
#####
WWDW
Ausgabe
aHHHH!
0
Preference Matrix -> Win
Eingang
5 5
#####
#O #
# ~ #
# H#
#####
WRD
Ausgabe
2
Warten auf den Schnitter
Eingang
5 5
#####
#O #
# ~ #
# H#
#####
WWW
Ausgabe
aHHHH!
0
Erfolgreiche Niederlage im Wikipedia-Szenario
Eingang
40 23
########################################
#~ ~ ~~ ~ ~ ~~ ~ ~~ ~ ~ ~~ #
#~~ ~ ~~ ~ ~ ~~ ~ #
#~# ~~ ~~~~ ~ ~~~~ ~ ~~~ ~#
# ~ ~ ~ ~~ #~~ ~ #
#~~ ~~~ ~ ~ ~ ~ ~~ ~ ~ ~ ~ #
# ~~ ~ ~ ~ ~~~ H ~ #~ #
# O~ ~ # ~~~ ~ ~ ~~ ~ ~ ~~ #
# ~ ~H~~ ~~ ~ # ~~ ~ #
# ~~ ~ ~~~ ~~ ~~~~ ~ ~#
#~ ~ ~~~ ~ ~ ~ ~ ~~ ~~#
# ~ # ~ ~~ ~~~ ~ ~ ~ # ~#
#~ ~ ~~ ~ ~ H ~~ ~~ ~ ~ ~~~ #
# ~ ~ ~ ~ ~ ~~~ ~ #
# ~~ ~ ~ ~~ ~ ~ ~ ~ ~ #
# ~~ ~ ~ ~ ~ ~~ #
#~ ~ # ~~~~ ~ ~~~H # ~ #
# ~ ~ ~ ~ ~ ~~ ~ #
# ~ ~ #~ ~ ~~ ~ ~ ~#
# ~~ ~ ~ ~~ ~ ~ #
# ~~~ ~ ~~ ~ ~ ~ ~ #
# ~ ~ ~ ~~ ~ ~ ~ #
########################################
RRRUWWWRRRURWWWWRDRRWWRDWWWWD
Ausgabe
8
Von mir bereitgestellte Karte, bewegt sich und wird von @bobbel ausgegeben, von mir und @Allbeert bestätigt.
Gewinnkriterien
Ich denke, das ist golffähig, also werde ich mit Code-Golfregeln weitermachen, es sei denn, die Leute beschweren sich.
Extra Gutschrift
Spielbare Unicode-Implementierung mit doppelt breiten Zeichen, die dem Bild ähneln!