Sechseckiges Schach beschreibt eine Familie von Schachvarianten, die auf einem Brett gespielt werden, bei dem die Felder Sechsecke anstelle der traditionellen Felder sind. Es gibt viele solcher Varianten; Bei dieser Herausforderung konzentrieren wir uns auf die am häufigsten verwendete Variante von Gliński.
Das Brett besteht aus drei Farben (so dass die gleiche Farbe keine Kante hat), wobei die Kanten der Sechsecke den Spielern zugewandt sind. Das Board verfügt über 11 Dateien, gekennzeichnet durch die Buchstaben a
durch l
(Letter j
nicht verwendet wird ), und 11 Reihen (die 60 ° biegen bei Datei f
). Ränge 1
durch 6
enthalten jeweils 11 Zellen, Rang 7
hat 9 Zellen, Rang 8
hat 7, und so weiter. Der Rang 11
enthält genau eine Zelle: f11 . (Wenn es hilft, stellen Sie sich vor, dass jeder Rang eine sehr breite "V" -Form hat.)
Hier ist ein Beispielbild des Bretts mit dem Ritter in der mittleren Zelle. Die mit einem Punkt markierten Felder sind die erlaubten Züge dieses bestimmten Ritters. Der Springer bewegt sich ähnlich wie "normales" Schach, Two-Down-and-One-Over. In hexagonalen Schachbegriffen handelt es sich um eine orthogonale Bewegung (über eine Kante) und dann um eine diagonale Bewegung in dieselbe Richtung (die Bewegung, die der gleichen Farbe am nächsten kommt). Zum Beispiel mit dem Ritter unten, wird eine orthogonale Bewegung "auf" zu dem hellbraunen dann von einer diagonalen Bewegung "auf und rechts" oder "auf und links" zu dem nächsten hellbraunen begleitet.
Aus dem öffentlichen Bereich über https://commons.wikimedia.org/wiki/File:Glinski_Chess_Knight.svg
Dieser Springer steht bei f6 und die legalen Züge sind somit
c4, c5, d3, d7, e3, e8, g3, g8, h3, h7, i4, i5
Eingang
Eine einzige Eingabe, die die Startzelle unseres Ritters angibt. Dies kann eine einzelne Zeichenfolge "b6"
, zwei Zeichenfolgen "b", "6"
usw. in einem beliebigen geeigneten Format sein . Die eingegebenen Buchstaben können Groß- oder Kleinbuchstaben sein - Sie haben die Wahl.
Ausgabe
Eine Liste der gültigen Züge, die ein Ritter an diesem Ort ausführen kann. Dies kann ein Array von Zeichenfolgen sein, eine einzelne Zeichenfolge mit einem eindeutigen und konsistenten Trennzeichen, getrennte Zeichenfolgen durch Zeilenumbrüche usw., je nachdem, was am bequemsten ist. Die Ausgabe muss nicht unbedingt in sortierter Reihenfolge erfolgen und kann entweder in Groß- oder Kleinbuchstaben erfolgen - Sie haben die Wahl.
Regeln
- Angenommen, keine anderen Teile sind auf dem Brett oder stören die Bewegungen. Wir konzentrieren uns nur auf den Ritter.
- Es ist entweder ein vollständiges Programm oder eine Funktion zulässig. Bei einer Funktion können Sie die Ausgabe zurückgeben, anstatt sie zu drucken.
- Fügen Sie nach Möglichkeit einen Link zu einer Online-Testumgebung hinzu, damit andere Benutzer Ihren Code ausprobieren können!
- Standardlücken sind verboten.
- Dies ist Codegolf, daher gelten alle üblichen Golfregeln, und der kürzeste Code (in Byte) gewinnt.
Beispiele
b6
a3, c4, d5, d9, e7, e8
f6
c4, c5, d3, d7, e3, e8, g3, g8, h3, h7, i4, i5
f11
d8, e8, g8, h8
i1
f2, f3, g4, h4, l2, k3