Schachfiguren (Könige, Königinnen, Türme, Bischöfe und Ritter) und Bauern befinden sich auf einem Brett, jedoch nicht auf dem Feld a1 oder h8 . Deine Aufgabe ist es, von den leeren Feldern a1 zu den leeren Feldern h8 zu gelangen und dabei nur leere Felder zu durchqueren. Die Bewegungsregeln sind wie folgt:
- Sie können von einem beliebigen leeren Feld zu einem beliebigen leeren Feld daneben gehen (gleicher Rang, nächste oder vorherige Datei; oder gleiche Datei, nächster oder vorherige Rang).
- Sie können von einem beliebigen leeren Feld zu einem beliebigen leeren Feld diagonal daneben gehen (nächster oder vorhergehender Rang, nächste oder vorhergehende Datei), vorausgesetzt , die Catty-Corner-Felder enthalten entweder (a) zwei Bauern oder (b) Bauern / gegnerische Steine Farbe. (Zwei nicht bäuerliche Figuren oder eine nicht bäuerliche Figur und eine bäuerliche Figur derselben Farbe sind stark genug, um den Fortschritt über die Ecke zu verhindern, aber zwei Bauern sind es nicht; und Figuren mit entgegengesetzter Farbe funktionieren nicht.) Konzert, um dir den Weg zu versperren.) Zum Beispiel, wenn du auf bist c4 sind und d5 leer ist, können Sie damit fortfahren, vorausgesetzt, c5 und d4 enthalten Bauern oder Teile / Bauern mit entgegengesetzter Farbe. Im Abschnitt "Beispieldiagonalen" unten finden Sie Abbildungen.
Eingang
FEN Board Beschreibung. Das heißt: Die Eingabe ist eine Zeichenfolge, die eine Beschreibung von Rang 8 , einen Schrägstrich ( /
), eine Beschreibung von Rang 7 , einen Schrägstrich, ... und eine Beschreibung von Rang 1 enthält . Die Beschreibung jedes Ranges umfasst Zahlen und Buchstaben von Datei a bis Datei h , wobei die Buchstaben Teile und Bauern bezeichnen (die schwarzen sind)p
= Bauer, n
= Ritter, b
= Bischof, r
= Turm, q
= Dame, k
= König und die weißen Einsen sind großgeschriebene Versionen desselben) und die Zahlen geben die aufeinanderfolgende Anzahl leerer Quadrate an. Zum Beispiel rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBN
ist das Brett nach einem Lagenzug (Königspfand auf e4)) in einem Schachspiel.
a1 und h8 sind in der Eingabe leer; dh der erste Schrägstrich hat eine Ziffer vor sich und der letzte Schrägstrich hat eine Ziffer nach sich.
Ausgabe
Wahrheit oder Falschheit, die angibt, ob eine erfolgreiche Passage nach h8 möglich ist.
Wenn der Eingang keine gültige FEN-Board-Beschreibung ist (dh eine, die meiner obigen Erklärung entspricht) oder wenn a1 oder h8 belegt ist, kann der Ausgang alles oder nichts sein. (Mit anderen Worten: Sie können davon ausgehen, dass die Eingabe die oben genannten Anforderungen erfüllt.)
Wertung
Das ist Code Golf: Wenigste Bytes gewinnen.
Beispiel für Ein- und Ausgabe
Beachten Sie, dass Ihr Code für alle gültigen Eingaben funktionieren muss, nicht nur für die Beispiele.
Fügen Sie w
nach jeder FEN ein Leerzeichen und ein hinzu , um es bei zu visualisieren http://www.dhtmlgoodies.com/scripts/chess-fen/chess-fen-3.html
. (Beachten Sie, dass einige andere Online-FEN-Visualisierer keine im Schach illegalen Bretter zulassen, z. B. mit einem Bauern auf Rang 1 oder 8 , und daher nicht für unsere Zwecke verwendet werden können.)
Wahrheitsbeispiele
8/8/8/8/8/8/8/8
- das leere Brett1p1Q4/2p1Q3/2p1Q3/2p1Q3/2p1Q3/2p1Q3/Q1p1Q3/1q3q2
- Es gibt einen Pfad a1 , b2 , b3 , b4 , b5 , b6 , b7 , c8 , d7 ( nicht e8 , der blockiert ist, aber) d6 , d5 , d4 , d3 , d2 , d1 , e1 , f2 , f3 , f4 , f5 , f6 , f7 , f8 , g8 , h88/8/KKKKK3/K3K3/K1K1p3/Kp1K4/K1KK4/2KK4
- Ein Beispiel, bei dem ein an einer Stelle blockiertes Quadrat später durchlaufen werden muss (um sicherzustellen, dass Sie keine Quadrate als unpassierbar festlegen).K1k1K1K1/1K1k1K1k/K1K1k1K1/1k1K1K1k/K1k1K1k1/1K1k1k1K/K1K1k1K1/1k1k1K1k
- Es gibt einen einzigen Weg (folgen Sie einfach Ihrer Nase: Es gibt nur ein Feld, zu dem Sie sich bei jedem Schritt bewegen können, es sei denn, Sie machen einen Schritt zurück). Dies ist auch ein Beispiel, bei dem ein Quadrat an einer Stelle blockiert ist, aber später benötigt wird
Falsche Beispiele
6Q1/5N2/4Q3/3N4/2Q5/1N6/2Q5/1N6
- Jeder Wegeversuch muss durch zwei diagonal angeordnete gleichfarbige Teile verlaufenN1q1K1P1/1R1b1p1n/r1B1B1Q1/1p1Q1p1b/B1P1R1N1/1B1P1Q1R/k1k1K1q1/1K1R1P1r
- Der einzige Weg durch die Diagonale a8-h1 ist bei f2-g3 , aber das würde den Durchgang durch e1-d2 oder f2-e3 erfordern , die beide unmöglich sind.4Q3/4q3/4Q3/5Q2/6Q1/3QqP2/2Q5/1Q6
4q3/4Q3/4q3/5q2/6q1/3qQp2/2q5/1q6
Beispieldiagonalen
Für den Fall, dass die obige Prosa unklar war, hier einige Bilder.
Passable Diagonalen
Unüberwindliche Diagonalen