Innovation ist ein Kartenspiel, bei dem Spieler durch die Jahrhunderte kämpfen, von der Vorgeschichte bis zur Neuzeit, um schneller als ihre Gegner Erfolge zu erzielen.
Jede Karte in Innovation ist ein Unikat und bietet einem Spieler eine Reihe von Symbolen. Wenn wir jede Karte als 2x3-Raster behandeln, werden drei der vier Steckplätze am linken und unteren Rand immer von Symbolen belegt (die Symbole in schwarzen Sechsecken werden nicht gezählt).
Das Spiel hat 6 Arten von Symbolen (Burgen, Kronen, Blätter, Glühbirnen, Fabriken und Uhren), die wir willkürlich mit den Zeichen darstellen 012345
. Um #
das schwarze Sechseck darzustellen, können wir vier Zeichen verwenden, um die Symbole auf jeder Karte darzustellen. Zum Beispiel sind die obigen Karten
0.. #.. 3.. 1.. -> 03#0 #331 355# 144#
3#0 331 55# 44#
In Innovation werden die Karten im Spielbereich jetzt in Stapel * gruppiert, die auf eine von vier Arten gespreizt werden. Für jedes Beispiel verwenden wir die obigen Karten, vorausgesetzt, die Karte ganz links 03#0
befindet sich oben auf dem Stapel.
Keine Spreizung: Nur die oberste Karte ist sichtbar
0..
3#0
Links anzeigen : Die oberste Karte ist vollständig sichtbar, ebenso das rechte Drittel aller Karten darunter
0..|.|.|.|
3#0|1|#|#|
Rechts spielen : Die oberste Karte ist vollständig sichtbar, ebenso das linke Drittel aller Karten darunter
1|3|#|0..
4|5|3|3#0
Aufspielen : Die oberste Karte ist vollständig sichtbar, ebenso die untere Hälfte aller Karten darunter.
0..
3#0
---
331
---
55#
---
44#
Die Herausforderung
Die Eingabe erfolgt durch eine einzelne durch Leerzeichen getrennte Zeichenfolge, die aus zwei Teilen besteht:
- Eine Spreizrichtung, die
!<>^
keine Spreizung darstellt, die keine Spreizung, Spreizung nach links, Spreizung nach rechts oder Spreizung nach oben darstellt. - Eine nicht leere Liste von Karten, von denen jede 4 Zeichen lang ist und aus den Zeichen besteht
012345#
. Die Karte ganz links befindet sich oben auf dem Stapel und jede Karte enthält genau eine#
.
Antworten können Funktionen, vollständige Programme oder gleichwertige sein . Sie können wählen, ob die Spreizrichtung zuerst oder zuletzt ist, dh eines der beiden folgenden Formate wählen:
> 03#0 #331 355# 144#
03#0 #331 355# 144# >
Die Ausgabe wird eine Liste von sechs Zahlen sein, die die Anzahl für jedes Symbol darstellen, z. B. für die obigen Beispielkarten:
! 03#0 #331 355# 144# -> 2 0 0 1 0 0
< 03#0 #331 355# 144# -> 2 1 0 1 0 0
> 03#0 #331 355# 144# -> 2 1 0 3 1 1
^ 03#0 #331 355# 144# -> 2 1 0 3 2 2
Zum Beispiel hatte der Fall ohne Spreizung zwei 0
Symbole und ein 3
Symbol, das die erste Zeile ergab. Beachten Sie, dass wir #
s nicht zählen , da die schwarzen Sechsecke keine Symbole sind.
Sie können eine vernünftige und nicht mehrdeutige Art der Darstellung der Liste wählen, z. B. durch Trennzeichen getrennt oder unter Verwendung der natürlichen Listendarstellung Ihrer Sprache.
Testfälle
! 113# -> 0 2 0 1 0 0
< 113# -> 0 2 0 1 0 0
> 113# -> 0 2 0 1 0 0
^ 113# -> 0 2 0 1 0 0
! 000# 12#2 -> 3 0 0 0 0 0
< 000# 12#2 -> 3 0 1 0 0 0
> 000# 12#2 -> 3 1 1 0 0 0
^ 000# 12#2 -> 3 0 2 0 0 0
! 000# 111# 222# -> 3 0 0 0 0 0
< 000# 111# 222# -> 3 0 0 0 0 0
> 000# 111# 222# -> 3 2 2 0 0 0
^ 000# 111# 222# -> 3 2 2 0 0 0
! 335# #101 21#2 333# 2#20 3#33 4#54 #133 3#33 32#2 -> 0 0 0 2 0 1
< 335# #101 21#2 333# 2#20 3#33 4#54 #133 3#33 32#2 -> 1 1 2 5 1 1
> 335# #101 21#2 333# 2#20 3#33 4#54 #133 3#33 32#2 -> 0 3 3 7 1 1
^ 335# #101 21#2 333# 2#20 3#33 4#54 #133 3#33 32#2 -> 2 4 4 10 1 2
Beachten Sie, dass so etwas wie !
eine ungültige Eingabe ist, da die Liste garantiert nicht leer ist.
* Für diese Herausforderung ignorieren wir Stapelfarben.
quelle