Ein Leaper ist eine Kategorie von Feenschachfiguren, die sich durch "Springen" bewegen. Ein normaler Ritter ist ein (1,2) -billiger, was bedeutet, dass jeder Zug eine Strecke von 1 Quadrat in orthogonaler Richtung und 2 Quadrate in senkrechter Richtung umfasst.
.o.o.
o...o
..N..
o...o
.o.o.
Es gibt viele verschiedene Springer. Der (1,3) -Billigere wird der Lange Ritter oder Kamel genannt. Das Bewegungsmuster sieht folgendermaßen aus:
..o.o..
.......
o.....o
...L...
o.....o
.......
..o.o..
Es gibt auch die (2,2) Alfil ...
o...o
.....
..A..
.....
o...o
... und sogar der (0,1) Wazir.
.o.
oWo
.o.
Herausforderung
Geben Sie bei einem Zahlenpaar als Eingabe das entsprechende Bewegungsdiagramm aus. Sie können ein Programm oder eine Funktion schreiben, wobei die Eingabe über STDIN / Befehlszeile oder als Argument erfolgt und die Ausgabe über STDOUT oder den Rückgabewert erfolgt. Das ist Code-Golf .
Eingang
Die Eingabe besteht aus einer durch Kommas getrennten Liste mit zwei Ganzzahlen und einem Großbuchstaben. Die zwei ganzen Zahlen liegen im Bereich 0-7
(einschließlich) und in nicht abnehmender Reihenfolge. Optionaler Zeilenumbruch für Ein- und Ausgabe.
Hier sind die Eingaben für die obigen vier Beispiele:
1,2,N
1,3,L
2,2,A
0,1,W
Ausgabe
Die Ausgabe erfolgt als quadratische mehrzeilige Zeichenfolge. Der Großbuchstabe wird in der Mitte platziert, um die aktuelle Position des Stücks darzustellen. Die Bewegungsorte werden durch 4 oder 8 Kleinbuchstaben dargestellt o
. Alle anderen Felder auf dem Platz werden mit Punkten gefüllt.
Wenn das Bewegungsmuster ist 0,0
, geben Sie nur den Großbuchstaben aus.
Wenn die zweite Ganzzahl (die größere) den Wert N hat, hat das Quadrat immer die Seitenlänge 2N + 1. Das o
s befindet sich immer am Umfang des Quadrats.
Zusätzliche Testfälle
1,1,F
o.o
.F.
o.o
5,7,Q
..o.........o..
...............
o.............o
...............
...............
...............
...............
.......Q.......
...............
...............
...............
...............
o.............o
...............
..o.........o..
0,0,J
J
Antworten:
Rubin, 107
Ungolfed im Testprogramm
quelle
Pyth, 40 Bytes
Ich lerne Pyth! Probieren Sie es aus .
Erläuterung
quelle
JavaScript (ES6),
163161145 BytesWo
\n
ist das wörtliche Zeichen für eine neue Zeile? Generiert den unteren rechten Quadranten und spiegelt ihn entlang beider Achsen.Bearbeiten: 2 Bytes dank @ edc65 gespeichert.
(Ich kam hierher über eine doppelte Frage, die ein Array-Ergebnis ermöglichte, das 19 Byte kürzer gewesen wäre, aber keine abnehmende Reihenfolge garantierte, was 8 Byte verschwendete.)
quelle
fill
und einer wörtlichen Newline\n
ist das wörtliche Zeilenumbruchzeichen"), aber danke für den anderen Tipp.JavaScript (ES6) 144
150Weniger golfen
Prüfung
quelle