Herausforderung:
Geben Sie bei einem Schachbrett die kleinste Anzahl von Zügen aus, die erforderlich sind (vorausgesetzt, Schwarz bewegt sich überhaupt nicht), um nach Möglichkeit ein rotes Stück zu erhalten.
Regeln :
Die rote Seite wird immer unten sein, ihre Figuren können jedoch in einer beliebigen Reihe beginnen (sogar in der Königsreihe, zu der sie gelangen müssen). Schwarze Steine sind stationär , das heißt, sie bewegen sich nicht zwischen den Bewegungen von Rot, sondern werden vom Spielfeld entfernt, wenn sie gefangen werden. Beachte, dass die Steine auf jedem Feld des Spielfelds beginnen können, auch direkt nebeneinander. Dies ist nicht die Art und Weise, wie normale Checker gespielt werden, aber Ihr Programm muss in der Lage sein, diese zu lösen. (Siehe Eingabe 5) Steine dürfen sich jedoch nur diagonal bewegen (siehe Eingabe 3). Rückwärtserfassung ist zulässig, wenn sich die erste Erfassung in der Kette vorwärts befindet (siehe Eingabe 7).
Eingang:
Ein 8x8-Schachbrett, bei dem die Platinenabstände wie folgt definiert sind (Sie können auch Alternativen verwenden, sofern diese übereinstimmen):
. - Leer
R - Rotes Stück
B - Schwarzes Stück
Ausgabe:
Die kleinste Anzahl von Zügen, für die ein rotes Steinchen benötigt wird, um durch Betreten der Königsreihe in der obersten Reihe des Bretts (schwarze Seite) "König" zu werden, 0, wenn keine Züge erforderlich sind (ein rotes Steinchen beginnt in der Königsreihe), oder eine negative Zahl, wenn es nicht möglich ist, ein rotes Stück zu bestimmen (dh Schwarz belegt die gesamte erste Reihe).
Eingang 1:
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
R . . . . . . .
Ausgang 1:
7
Eingang 2:
. . . . . . . .
. . . . . . . .
. . . . . B . .
. . . . . . . .
. . . B . . . .
. . . . . . . .
. B . . . . . .
R . . . . . . .
Ausgang 2:
2
Eingang 3:
. B . B . B . B
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
R . . . . . . .
Ausgang 3:
-1
Eingang 4:
. . . . . . . R
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
R . . . . . . .
Ausgang 4:
0
Eingang 5:
. . . . . . . .
. . . . . . . .
. . . . . . . .
. B . . B . . .
B . . . . B . .
. B . B . . . .
. . B . . B . .
. . . R R . . .
Ausgang 5:
4
Eingang 6:
. . . . . . . .
. . . . . . . .
. B . . . . . .
. . B . . . . .
. B . B . . . .
. . . . R . . .
. . . B . . . .
. . . . R . . .
Ausgang 6:
2
Eingang 7:
. . . . . . . .
. . . . . . . .
. . B . . . . .
. . . . . . . .
. . B . . . . .
. B . B . B . .
. . . . B . . .
. . . . . R . R
Ausgang 7:
4
Wertung:
Das ist Code-Golf , also gewinnt der kürzeste Code in Bytes.
quelle
Antworten:
JavaScript (ES6),
354322 ByteNimmt ein Array als Eingabe mit:
Gibt die optimale Anzahl von Zügen zurück oder 99, wenn es keine Lösung gibt.
Es ist sehr schnell, aber man könnte viel mehr Golf spielen.
quelle