Su trabajo es simular un juego matemáticamente perfecto de 2048. La idea es encontrar el límite superior teórico de cuán lejos puede llegar un juego de 2048 y cómo llegar allí.
Para tener una idea de cómo se ve, juega con este clon de 2x2 e intenta obtener 68 puntos. Si lo haces, terminarás con un mosaico de 2, 4, 8 y 16. Es imposible avanzar más allá de ese punto.
Su tarea se hace más fácil porque puede elegir dónde aparecen los mosaicos y cuáles son sus valores, al igual que este clon .
Debe escribir un programa o función que acepte una placa 2048 como entrada, y que emita la placa con el mosaico generado y la placa después de colapsar los mosaicos. Por ejemplo:
Input:
-------
0 0 0 0
0 0 0 0
0 0 0 0
0 0 8 8
Output:
-------
0 0 0 0
0 0 0 0
0 0 0 0
0 4 8 8
0 0 0 0
0 0 0 0
0 0 0 0
0 0 4 16
Su programa se alimentará repetidamente con su propia salida para simular un juego completo de 2048. La primera entrada del programa será un tablero vacío. Debes generar una ficha en ella, a diferencia de las dos fichas del juego original. En el último paso del juego, no podrás moverte, por lo que tus dos tableros de salida pueden ser idénticos.
Por supuesto, solo debe generar movimientos legales. Solo se pueden generar 2 o 4, debes mover o colapsar al menos una ficha en un movimiento, etc.
He hecho vagamente los requisitos de entrada y salida. Usted es libre de elegir el formato de entrada y salida. Puedes usar matrices, matrices, cadenas o lo que quieras. Mientras puedas simular un juego 2048 con ellos, tus entradas y salidas estarán bien.
El ganador será el que termine el juego con la mayor suma de fichas en el tablero, luego por el menor número de bytes en el código fuente. La puntuación del juego original no se tendrá en cuenta. (Sugerencia: use 4)