En el juego Pickomino , hay varias fichas situadas en el centro de la mesa, cada una con un número entero positivo diferente. Cada turno, los jugadores tiran dados de cierta manera y obtienen un puntaje, que es un número entero no negativo.
Ahora el jugador toma el mosaico con el número más alto que todavía es más bajo o igual a su puntaje, retira el mosaico del medio y lo agrega a su pila. Si esto no es posible porque todos los números en el medio son más altos que el puntaje del jugador, el jugador pierde la ficha más alta de su pila (que se agregó más tarde), que se devuelve al medio. Si al jugador no le quedan fichas, no pasa nada.
El reto
Simula a un jugador que juega contra ellos mismos. Obtiene una lista de las fichas en el medio y una lista de los puntajes que obtuvo el jugador. Devuelve una lista de las fichas del jugador después de que se hayan evaluado todos los turnos.
Reglas de desafío
- Puede suponer que la lista con los mosaicos está ordenada y no contiene ningún número entero dos veces.
- Puede tomar ambas listas de entrada en el orden que desee
- La salida debe mantener el orden de los mosaicos en la pila, pero puede decidir si la lista se ordena de arriba a abajo o de abajo hacia arriba.
Reglas generales
- Este es el código de golf , por lo que la respuesta más corta en bytes gana.
No permita que los lenguajes de code-golf lo desanimen a publicar respuestas con lenguajes que no sean codegolf. Trate de encontrar una respuesta lo más breve posible para 'cualquier' lenguaje de programación. - Las reglas estándar se aplican a su respuesta con las reglas de E / S predeterminadas , por lo que puede usar STDIN / STDOUT, funciones / método con los parámetros adecuados y programas completos de tipo retorno.
- Las lagunas predeterminadas están prohibidas.
- Si es posible, agregue un enlace con una prueba para su código (es decir, TIO ).
- Se recomienda agregar una explicación para su respuesta.
Ejemplo
(tomado del sexto caso de prueba)
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]
El primer puntaje es 22, así que toma la ficha más alta en el medio <= 22, que es 22 en sí.
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]
El siguiente puntaje es 22, así que toma la ficha más alta en el medio <= 22. Como 22 ya está tomado, el jugador tiene que tomar 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]
El siguiente puntaje es 22, pero todos los números <= 22 ya están tomados. Por lo tanto, el jugador pierde la ficha superior de la pila (21), que se devuelve al medio.
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]
Los siguientes puntajes son 23, 21 y 24, por lo que el jugador toma estas fichas del medio.
Middle: [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Stack: [22, 23, 21, 24]
Remaining scores: [0, 22]
El jugador revienta y anota cero. Por lo tanto, el mosaico con el número 24 (el más alto en la pila) se devuelve al medio.
Middle: [24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Stack: [22, 23, 21]
Remaining scores: [22]
El último puntaje es 22, pero todas las fichas <= 22 ya están tomadas, por lo que el jugador pierde la ficha superior en la pila (21).
Middle: [21, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Final Stack and Output: [22, 23]
Casos de prueba
(con el último mosaico superior en la lista de resultados)
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: []