Inspirado en xkcd .
Su desafío es determinar si un número sería una buena combinación en el juego 2048 . Su entrada será un número, como:
8224
Y la salida será si ese número sería un buen combo de 2048, que para esta entrada sería true
o yes
o 1
o cualquier otra forma de indicar un resultado positivo.
Para aquellos que no están familiarizados con el juego, he aquí una explicación sencilla: las potencias de dos están dispuestas en una cuadrícula, como esto: [2] [2]
. Las fichas se pueden mover en cualquier dirección, y si dos fichas idénticas se encuentran, se convierten en la siguiente potencia de dos (así que [2] [2]
cuando se mueven hacia la izquierda o hacia la derecha [4]
). O bien, puedes probar el juego aquí .
¿Qué significa "una buena combinación 2048"? Significa cualquier número que, si estaba en el juego "2048", podría combinarse en un solo número. (Un cero significa un espacio vacío , y puede ignorarse si es necesario). ¡Tenga en cuenta que los números pueden ser múltiples dígitos! Sin embargo, los números no deben cambiar entre movimientos. Aquí hay algunos ejemplos / casos de prueba (con "Bueno" que indica una buena combinación y "Malo" que significa que no es bueno):
- Bueno: 8224 (8224 -> 844 -> 88 -> 16)
- Bueno: 2222 (2222 -> 44 -> 8)
- Bueno: 22048 (22048 -> 448 -> 88 -> 16)
- Malo: 20482 (no puede combinar los 2 externos, ni puede combinar un 2048 y un 2)
- Bueno: 20482048 (20482048 -> 4096)
- Malo: 210241024 (210241024 -> 22048, pero ahora es [2] [2048] y no se puede combinar ya que los números no pueden cambiar entre movimientos)
- Bien: 2048 (ya es un número)
- Malo: 2047 (no es un poder de 2)
- Malo: 11 (no hay 1 en el juego)
- Bueno: 000040000000 (los ceros son espacios vacíos)
Reglas misceláneas:
- La entrada puede ser desde cualquier lugar razonable, es decir, STDIN, argumento de función, archivo, etc.
- La salida también puede ser razonable, es decir, STDOUT, valor de retorno de función, archivo, etc.
- Ignorar el tamaño de la cuadrícula,
22222222
aún debería salir verdadero - No hay un máximo de lo que podría ser un número, siempre que sea una potencia de dos. Por lo tanto, los números posibles son cualquier potencia de dos mayor que 0.
- Para aquellos preocupados por los ceros que causan ambigüedad, ese no es el caso. Por ejemplo,
22048
se puede analizar como[2] [2048]
o[2] [2] [0] [4] [8]
. El primero no funciona, pero el segundo sí, por lo que debería ser verdadero. - Este es el código de golf , ¡así que el código más corto en bytes ganará!
22048
debería salir, good
pero eso no es cierto. Usted no puede combinar 2
con 2048
y la red es 4x4
si todos los números deben ser separada obtendrá 5 células. entonces quizás deberías eliminar el 0
? Además, su quinto ejemplo parece no ser válido ya que el juego se detiene en 2048
:)
1