Zielsetzung
Der schwarze Bauer will sich rächen. Planen Sie den letzten Angriff.
Regeln
Der schwarze Bauer ( L
) beginnt in der oberen Reihe und bewegt sich nach unten in die untere Reihe. Maximieren Sie die Punkte und geben Sie den Pfad mit an X
. Bauern ( P
) sind 1, Bischöfe ( B
) und Ritter ( N
) 3, Türme ( R
) 5 und Königinnen ( Q
) 9. Die Eingabe enthält keine Könige.
Wenn es mehr als einen Pfad mit der maximalen Anzahl von Punkten gibt, geben Sie einen dieser Pfade aus. Es wird keine Situationen geben, in denen der Bauer die unterste Reihe nicht erreichen kann.
Beispiele
Eingang:
----L---
-----P--
------P-
--R--P-Q
----P-P-
---P-P-P
--P-N---
-P------
Ausgabe:
----L---
-----X--
------X-
--R--P-X
----P-X-
---P-X-P
--P-X---
-P--X---
Eingang:
--L-----
-P------
P-------
-P------
P--Q----
-P------
P-------
-P------
Ausgabe:
--L-----
-PX-----
P-X-----
-PX-----
P--X----
-P-X----
P--X----
-P-X----
code-golf
graph-theory
path-finding
chess
Absinth
quelle
quelle
Antworten:
Python, 332
quelle
Ruby
260 258 255 241 236222Dieses Programm definiert eine Funktion (
s
), die bei einigen Board-Zeilen den besten Pfad als Zeichenfolge und den Wert in Punkten dieses Pfads zurückgibt.s
ist rekursiv, bewertet also bei jedem Schritt alle Möglichkeiten und gibt die beste zurück.Hier ist eine Online-Version mit Tests: http://ideone.com/6eMtm4
Die lesbare Version finden Sie hier: http://ideone.com/eoXUtp
Alle Schritte, die ich unternommen habe, um die Größe des Codes zu reduzieren, finden Sie hier .
quelle