Im Spiel Pickomino liegen mehrere Kacheln in der Mitte des Tisches, auf denen sich jeweils eine andere positive Ganzzahl befindet. In jeder Runde würfeln die Spieler auf eine bestimmte Weise und erhalten eine Punktzahl, die eine nicht negative ganze Zahl ist.
Jetzt nimmt der Spieler das Plättchen mit der höchsten Zahl, die noch niedriger oder gleich seiner Punktzahl ist, entfernt das Plättchen aus der Mitte und fügt es seinem Stapel hinzu. Wenn dies nicht möglich ist, weil alle Zahlen in der Mitte höher sind als die Punktzahl des Spielers, verliert der Spieler das oberste Plättchen von seinem Stapel (das zuletzt hinzugefügt wurde), das in die Mitte zurückgelegt wird. Wenn der Spieler keine Steine mehr hat, passiert nichts.
Die Herausforderung
Simulieren Sie einen Spieler, der das Spiel gegen sich selbst spielt. Sie erhalten eine Liste der Kacheln in der Mitte und eine Liste der Punkte, die der Spieler erhalten hat. Gibt eine Liste der Kacheln des Spielers zurück, nachdem alle Züge ausgewertet wurden.
Herausforderungsregeln
- Sie können davon ausgehen, dass die Liste mit den Kacheln geordnet ist und keine Ganzzahl zweimal enthält.
- Sie können beide Eingabelisten in beliebiger Reihenfolge eingeben
- Die Ausgabe muss die Reihenfolge der Kacheln auf dem Stapel beibehalten. Sie können jedoch entscheiden, ob die Liste von oben nach unten oder von unten nach oben sortiert wird.
Allgemeine Regeln
- Dies ist Code-Golf , also gewinnt die kürzeste Antwort in Bytes.
Lassen Sie sich nicht von Code-Golf-Sprachen davon abhalten, Antworten mit Nicht-Codegolf-Sprachen zu veröffentlichen. Versuchen Sie, eine möglichst kurze Antwort für "jede" Programmiersprache zu finden. - Für Ihre Antwort gelten Standardregeln mit Standard-E / A-Regeln . Sie können also STDIN / STDOUT, Funktionen / Methoden mit den richtigen Parametern und vollständige Programme vom Rückgabetyp verwenden.
- Standardschlupflöcher sind verboten.
- Wenn möglich, fügen Sie bitte einen Link mit einem Test für Ihren Code (dh TIO ) hinzu.
- Es wird empfohlen, eine Erklärung für Ihre Antwort hinzuzufügen.
Beispiel
(aus dem 6. Testfall entnommen)
Tiles: [21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Scores: [22, 22, 22, 23, 21, 24, 0, 22]
Die erste Punktzahl ist 22, also nimm das höchste Plättchen in der Mitte <= 22, also 22 selbst.
Middle: [21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Stack: [22]
Remaining scores: [22, 22, 23, 21, 24, 0, 22]
Die nächste Punktzahl ist 22, also nimm das höchste Plättchen in der Mitte <= 22. Da 22 bereits vergeben ist, muss der Spieler 21 nehmen.
Middle: [23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Stack: [22, 21]
Remaining scores: [22, 23, 21, 24, 0, 22]
Die nächste Punktzahl ist 22, aber alle Zahlen <= 22 sind bereits vergeben. Daher verliert der Spieler das oberste Plättchen auf dem Stapel (21), das in die Mitte zurückgelegt wird.
Middle: [21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Stack: [22]
Remaining scores: [23, 21, 24, 0, 22]
Die nächsten Punkte sind 23, 21 und 24, also nimmt der Spieler diese Steine aus der Mitte.
Middle: [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Stack: [22, 23, 21, 24]
Remaining scores: [0, 22]
Der Spieler bricht ab und erzielt null Punkte. Daher wird die Kachel mit der Nummer 24 (oberste auf dem Stapel) in die Mitte zurückgebracht.
Middle: [24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Stack: [22, 23, 21]
Remaining scores: [22]
Die letzte Punktzahl ist 22, aber alle Plättchen <= 22 sind bereits vergeben, sodass der Spieler das oberste Plättchen auf dem Stapel verliert (21).
Middle: [21, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Final Stack and Output: [22, 23]
Testfälle
(mit der obersten Kachel zuletzt in der Ausgabeliste)
Tiles: [21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Scores: [26, 30, 21]
Output: [26, 30, 21]
Tiles: [21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Scores: [35, 35, 36, 36]
Output: [35, 34, 36, 33]
Tiles: [21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Scores: [22, 17, 23, 19, 23]
Output: [23]
Tiles: [21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Scores: []
Output: []
Tiles: [21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Scores: [22, 17, 23, 19, 23, 0]
Output: []
Tiles: [21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Scores: [22, 22, 22, 23, 21, 24, 0, 22]
Output: [22, 23]
Tiles: [1, 5, 9, 13, 17, 21, 26]
Scores: [6, 10, 23, 23, 23, 1, 0, 15]
Output: [5, 9, 21, 17, 13, 1]
Tiles: []
Scores: [4, 6, 1, 6]
Output: []