Ich habe gerade das Brettspiel gespielt . mit einigen Leuten, und mir wurde klar, dass ich ein paar interessante Herausforderungen daraus ableiten konnte. Dieser ist ziemlich einfach.
Ihre Aufgabe ist es einfach, eine ASCII-Art- Version eines Trauerbrettes auszugeben und die Teile dort zu platzieren, wo ich Sie auffordert.
Technische Daten
Zunächst ist hier ein Bild von einem tatsächlichen Sorry! Brett als Referenz:
Das leere Brett sieht so aus:
# > - - o # # # # > - - - o # #
# # S v
o # H # # # # # |
| # |
| # S o
| # #
^ H #
# #
# #
# H v
# # |
o S # |
| # |
| # # # # # H # o
^ S # #
# # o - - - < # # # # o - - < #
Beachten Sie einige Funktionen.
- Das
#
sind leere Felder. - Die
S
's undH
' s sind jeweils Starts und Homes. - Das
>v<^
ist der Anfang der Folien, je nachdem in welche Richtung sie zeigen. - Das
|
's und-
' s sind die Mitten von Folien, je nachdem, ob sie horizontal oder vertikal sind. - Das
o
ist das Ende von Dias. - Jede Spalte ist durch eine Spalte mit Leerzeichen getrennt, damit sie quadratischer aussieht.
Nun ist hier, was Sie tun müssen:
- Ihre Eingabe ist eine Liste von Koordinaten verschiedener Teile, die auf der Tafel platziert wurden.
- Die Koordinaten beginnen bei
0
dem Quadrat außerhalb des Anfangs der unteren Farbe (gelb im Bild) und erhöhen sich im Uhrzeigersinn um eins pro Quadrat. - Nach diesen 60 Feldern haben die sicheren Zonen die nächsten und letzten 20 Koordinaten, beginnend mit der untersten (die 60-64 wird) und im Uhrzeigersinn.
- Sie müssen die Sterne
*
auf die richtige Koordinate setzen und den darunter liegenden Charakter für alle Spieler ersetzen. - Wenn sich einer der Spieler auf dem Startfeld eines Schiebereglers befindet, verschieben Sie ihn an das Ende des Schiebereglers, bevor Sie ihn platzieren.
- Sie können davon ausgehen, dass vor oder nach dem Auflösen von Schiebereglern keine Kollisionen auftreten.
- Sie brauchen sich keine Sorgen um das Zuhause oder die Starts zu machen.
- Sie können 1-indiziert sein, wenn Sie möchten, aber die Testfälle sind 0-indiziert.
Testfälle
[0, 20] ->
# > - - o # # # # > - - - o # #
# # S v
* # H # # # # # |
| # |
| # S o
| # #
^ H #
# #
# #
# H v
# # |
o S # |
| # |
| # # # # # H # o
^ S # #
# # o - - - < # # # # * - - < #
[2, 7, 66] ->
# > - - o # # # # > - - - o # #
# # S v
o # H # # # # # |
| # |
| # S o
| # #
^ H #
# #
# #
# H v
# # |
o S # |
| # |
| # * # # # H # o
^ S # #
# # o - * - < # # * # o - - < #
0, 5
und der zweite sein2, 60, 37
).Antworten:
Python 2, 476 Bytes
Kurze 3-Zeilen-Lösung ( Online ausprobieren )
Einzeiler in 534 ( Online testen ):
Ich nehme Indizes der sicheren Zone auf diese Weise an:
Erklärung (Zeilen sind zum besseren Verständnis etwas getrennt):
quelle