Vamos a dividirlo en MVC.
1. Modelo: necesita una matriz para almacenar números.
2. Ver: necesita una GUI
3. Controlador: debe procesar las pulsaciones de teclas de flecha
Asumiré que está más preocupado por la implementación de la red troncal, es decir, el modelo.
¿Qué sucede cuando presionas una tecla de flecha? Cualquiera de los dos números que se pueden combinar, según la dirección, por ejemplo, si presiona la tecla izquierda, los números se combinan de izquierda a derecha. (Si hay un 2228, obtendrá un 428_ si no recuerdo mal).
Entonces, desea una búsqueda en cada fila (izquierda / derecha) / columna (arriba / abajo) comenzando desde el primer índice (izquierda / arriba) o el último (derecha / abajo), para ver si tiene números adyacentes idénticos en su matriz en la dirección dada.
Luego los combinas y desplazas la matriz hacia arriba. Puede agregar 0 donde el número está en blanco. Probablemente sea una buena idea hacer esto en los pases, es decir, la primera fila con el segundo para arriba en el primer pase, el segundo y el tercero en el segundo, etc. De esta manera, no tendrá inconsistencias al tratar de combinar números que ya se han fusionado
Creo que eso es todo, pero este fue el proceso de diseño de unos minutos, así que probablemente me estoy perdiendo algo.
- Un hombre tenía nueve hijos, todos nacidos a intervalos regulares, y la suma de los cuadrados de su edad era igual al cuadrado propio. ¿Cuál era la edad de cada uno?
- ¿Cómo debería abordar tratando de resolver acertijos lógicos?
- Cómo determinar si parte o la totalidad de una declaración lógica es desconocida, en oposición a verdadero o falso
- ¿Cuál es la solución al rompecabezas de Fox Hole?
- Se lanza una bola de 2 kg horizontalmente a 5 m / s desde una altura de 5 m. ¿Qué tan rápido se moverá cuando entre en contacto con el suelo?