Inspiré par xkcd .
Votre défi est de déterminer si un nombre ferait une bonne combinaison dans le jeu 2048 . Votre entrée sera un nombre, tel que:
8224
Et la sortie sera de savoir si ce nombre ferait un bon combo 2048, qui pour cette entrée serait true
ou yes
ou 1
ou toute autre manière d'indiquer un résultat positif.
Pour ceux qui ne connaissent pas le jeu, voici une explication simple: les pouvoirs de deux sont disposés sur une grille, comme ceci: [2] [2]
. Les tuiles peuvent être déplacées dans n'importe quelle direction, et si deux tuiles identiques se rencontrent, elles deviennent la puissance suivante de deux (donc [2] [2]
lorsqu'elles sont déplacées vers la gauche ou vers la droite, elles deviennent [4]
). Ou, vous pouvez simplement essayer le jeu ici .
Que signifie "une bonne combinaison 2048"? Cela signifie n'importe quel nombre qui, s'il était dans le jeu "2048", pourrait être combiné en un seul numéro. (Un zéro signifie un espace vide et peut être ignoré si nécessaire.) Notez que les nombres peuvent éventuellement être à plusieurs chiffres! Cependant, les nombres ne doivent pas changer entre les coups. Voici quelques exemples / cas de test (avec "Bon" indiquant une bonne combinaison et "Mauvais" signifiant pas bon):
- Bon: 8224 (8224 -> 844 -> 88 -> 16)
- Bon: 2222 (2222 -> 44 -> 8)
- Bon: 22048 (22048 -> 448 -> 88 -> 16)
- Mauvais: 20482 (ne peut pas combiner les 2 extérieurs, ni combiner un 2048 et un 2)
- Bon: 20482048 (20482048 -> 4096)
- Mauvais: 210241024 (210241024 -> 22048, mais c'est maintenant [2] [2048] et ne peut pas être combiné car les nombres ne peuvent pas changer entre les mouvements)
- Bon: 2048 (c'est déjà un chiffre)
- Mauvais: 2047 (ce n'est pas une puissance de 2)
- Mauvais: 11 (il n'y a pas de 1 dans le jeu)
- Bon: 000040000000 (les zéros sont des espaces vides)
Règles diverses:
- L'entrée peut être de n'importe où raisonnable, c'est-à-dire STDIN, argument de fonction, fichier, etc.
- La sortie peut également être raisonnable, c.-à-d. STDOUT, valeur de retour de fonction, fichier, etc.
- Ignorez la taille de la grille -
22222222
devrait toujours afficher true. - Il n'y a pas de maximum à ce que pourrait être le nombre, tant qu'il s'agit d'une puissance de deux. Par conséquent, les nombres possibles sont toute puissance de deux supérieure à 0.
- Pour ceux qui s'inquiètent des ambiguïtés des zéros, ce n'est pas le cas. Par exemple,
22048
peut être analysé en tant que[2] [2048]
ou[2] [2] [0] [4] [8]
. Le premier ne fonctionne pas, mais le second fonctionne, il devrait donc afficher true. - Il s'agit de code-golf , donc le code le plus court en octets gagnera!
22048
devrait sortir good
mais ce n'est pas vrai. Vous ne pouvez pas combiner 2
avec 2048
et la grille est 4x4
si tous les nombres doivent être séparés, vous obtiendrez 5 cellules. alors peut-être que vous devriez supprimer le 0
? Votre 5ème exemple semble également invalide puisque le jeu s'arrête à 2048
:)
1