Dans le jeu Pickomino , il y a plusieurs tuiles au milieu de la table, chacune avec un entier positif différent sur elles. Chaque tour, les joueurs lancent les dés d'une certaine manière et obtiennent un score, qui est un entier non négatif.
Maintenant, le joueur prend la tuile avec le nombre le plus élevé qui est toujours inférieur ou égal à son score, retirant la tuile du milieu et l'ajoutant à sa pile. Si cela n'est pas possible car tous les nombres au milieu sont supérieurs au score du joueur, le joueur perd la tuile la plus haute de sa pile (qui a été ajoutée en dernier), qui est retournée au milieu. Si le joueur n'a plus de tuiles, rien ne se passe.
Le défi
Simulez un joueur qui joue contre lui-même. Vous obtenez une liste des tuiles au milieu et une liste des scores obtenus par le joueur. Retourne une liste des tuiles du joueur après que tous les tours ont été évalués.
Règles du challenge
- Vous pouvez supposer que la liste avec les tuiles est ordonnée et ne contient aucun entier deux fois.
- Vous pouvez prendre les deux listes d'entrées dans l'ordre que vous souhaitez
- La sortie doit conserver l'ordre des tuiles sur la pile, mais vous pouvez décider si la liste est triée de haut en bas ou de bas en haut.
Règles générales
- C'est le code-golf , donc la réponse la plus courte en octets l'emporte.
Ne laissez pas les langues de golf de code vous décourager de publier des réponses avec des langues non-golfeur de code. Essayez de trouver une réponse aussi courte que possible pour «n'importe quel» langage de programmation. - Des règles standard s'appliquent à votre réponse avec des règles d'E / S par défaut , vous êtes donc autorisé à utiliser STDIN / STDOUT, des fonctions / méthodes avec les paramètres appropriés et des programmes complets de type retour.
- Les failles par défaut sont interdites.
- Si possible, veuillez ajouter un lien avec un test pour votre code (par exemple TIO ).
- Il est recommandé d'ajouter une explication pour votre réponse.
Exemple
(extrait du 6ème cas d'essai)
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]
Le premier score est 22, alors prenez la tuile la plus haute au milieu <= 22, qui est 22 lui-même.
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]
Le score suivant est de 22, alors prenez la tuile la plus haute au milieu <= 22. Parce que 22 est déjà pris, le joueur doit prendre 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]
Le score suivant est 22, mais tous les nombres <= 22 sont déjà pris. Par conséquent, le joueur perd la tuile la plus haute de la pile (21), qui est retournée au milieu.
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]
Les scores suivants sont 23, 21 et 24, donc le joueur prend ces tuiles du milieu.
Middle: [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Stack: [22, 23, 21, 24]
Remaining scores: [0, 22]
Le joueur casse et marque zéro. Par conséquent, la tuile avec le numéro 24 (le plus haut sur la pile) est retournée au milieu.
Middle: [24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Stack: [22, 23, 21]
Remaining scores: [22]
Le dernier score est de 22, mais toutes les tuiles <= 22 sont déjà prises, donc le joueur perd la tuile la plus haute de la pile (21).
Middle: [21, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Final Stack and Output: [22, 23]
Cas de test
(avec la tuile la plus haute en dernier dans la liste de sortie)
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: []