Nel gioco Pickomino , ci sono diverse tessere al centro del tavolo, ognuna con un intero positivo diverso su di esse. Ad ogni turno, i giocatori tirano i dadi in un certo modo e ottengono un punteggio, che è un numero intero non negativo.
Ora il giocatore prende la tessera con il numero più alto che è ancora inferiore o uguale al proprio punteggio, rimuovendo la tessera dal centro e aggiungendola al proprio stack. Se ciò non è possibile perché tutti i numeri nel mezzo sono più alti del punteggio del giocatore, il giocatore perde la tessera più in alto dal proprio stack (che è stato aggiunto per ultimo), che viene restituito al centro. Se al giocatore non sono rimaste tessere, non succede nulla.
La sfida
Simula un giocatore che gioca contro se stesso. Si ottiene un elenco delle tessere nel mezzo e un elenco dei punteggi ottenuti dal giocatore. Restituisce un elenco delle tessere del giocatore dopo che tutti i turni sono stati valutati.
Regole della sfida
- Puoi presumere che l'elenco con i riquadri sia ordinato e non contenga alcun numero intero due volte.
- Puoi prendere entrambi gli elenchi di input nell'ordine che desideri
- L'output deve mantenere l'ordine dei riquadri nello stack, ma è possibile decidere se l'elenco viene ordinato dall'alto verso il basso o dal basso verso l'alto.
Regole generali
- Questo è code-golf , quindi vince la risposta più breve in byte.
Non lasciare che le lingue di code-golf ti scoraggino dal pubblicare risposte con lingue non codegolfing. Prova a trovare una risposta il più breve possibile per "qualsiasi" linguaggio di programmazione. - Le regole standard si applicano alla tua risposta con le regole I / O predefinite , quindi puoi utilizzare STDIN / STDOUT, funzioni / metodo con i parametri corretti e tipo di ritorno, programmi completi.
- Le scappatoie predefinite sono vietate.
- Se possibile, aggiungi un link con un test per il tuo codice (ad es. TIO ).
- Si consiglia di aggiungere una spiegazione per la risposta.
Esempio
(tratto dal sesto testcase)
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]
Il primo punteggio è 22, quindi prendi la tessera più alta nel mezzo <= 22, che è 22 stesso.
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]
Il punteggio successivo è 22, quindi prendi la tessera più alta nel mezzo <= 22. Poiché 22 è già preso, il giocatore deve prendere 21.
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]
Il prossimo punteggio è 22, ma tutti i numeri <= 22 sono già stati presi. Pertanto, il giocatore perde la tessera più in cima alla pila (21), che viene restituita nel mezzo.
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]
I prossimi punteggi sono 23, 21 e 24, quindi il giocatore prende queste tessere dal centro.
Middle: [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Stack: [22, 23, 21, 24]
Remaining scores: [0, 22]
Il giocatore sballa e segna zero. Pertanto, la tessera con il numero 24 (in cima alla pila) viene restituita nel mezzo.
Middle: [24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Stack: [22, 23, 21]
Remaining scores: [22]
L'ultimo punteggio è 22, ma tutte le tessere <= 22 sono già state prese, quindi il giocatore perde la tessera più in cima alla pila (21).
Middle: [21, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Final Stack and Output: [22, 23]
Casi test
(con l'ultimo riquadro all'ultimo nella lista di output)
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: []