Il tuo compito è quello di simulare un gioco matematicamente perfetto del 2048. L'idea è quella di trovare il limite superiore teorico di quanto può andare lontano un gioco del 2048 e trovare come arrivarci.
Per avere un'idea di come appare, gioca con questo clone 2x2 e prova a segnare 68 punti. Se lo fai, finirai con una tessera 2, 4, 8 e 16. È impossibile avanzare oltre quel punto.
Il tuo compito è reso più semplice perché puoi scegliere dove vengono generate le tessere e quali sono i loro valori, proprio come questo clone .
È necessario scrivere un programma o una funzione che accetti una scheda 2048 come input e emetta la scheda con la tessera generata e la scheda dopo il crollo delle tessere. Per esempio:
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
Il tuo programma riceverà ripetutamente il proprio output per simulare un intero gioco del 2048. Il primo input del programma sarà una scheda vuota. Devi generare una tessera su di essa, a differenza delle due tessere del gioco originale. Nell'ultima fase del gioco, non sarai in grado di muoverti, quindi le tue due schede di output possono essere identiche.
Ovviamente devi solo produrre mosse legali. Possono essere generati solo 2 o 4, devi muovere o comprimere almeno una tessera su una mossa, ecc.
Ho volutamente reso vaghi i requisiti di input e output. Sei libero di scegliere il formato dell'input e dell'output. Puoi usare matrici, matrici, stringhe o qualsiasi cosa tu voglia. Finché puoi simulare un gioco 2048 con loro, i tuoi input e output vanno bene.
Il vincitore sarà colui che termina il gioco con la somma più alta di tessere sul tabellone, quindi con il minor numero di byte nel codice sorgente. Il punteggio del gioco originale non verrà preso in considerazione. (Suggerimento: usa i 4)