Ispirato da xkcd .
La tua sfida è determinare se un numero farebbe una buona combinazione nel gioco 2048 . Il tuo input sarà un numero, come ad esempio:
8224
E l'output sarà se quel numero farebbe una buona combinazione 2048, che per questo input sarebbe true
o yes
o 1
o qualsiasi altro modo per indicare un risultato positivo.
Per chi non ha familiarità con il gioco, ecco una spiegazione semplice: potenze di due sono disposti su una griglia, in questo modo: [2] [2]
. Le tessere possono essere spostate in qualsiasi direzione, e se due tessere identiche si incontrano, diventano la potenza successiva di due (quindi [2] [2]
quando spostate a sinistra o a destra diventano [4]
). Oppure, potresti semplicemente provare il gioco qui .
Che cosa significa "una buona combinazione 2048"? Indica qualsiasi numero che, se fosse nel gioco "2048", potrebbe essere combinato in un unico numero. (Uno zero indica uno spazio vuoto e, se necessario, può essere ignorato.) Nota che i numeri potrebbero essere più cifre! Tuttavia, i numeri non devono cambiare tra le mosse. Ecco alcuni esempi / casi di test (con "Buono" che indica una buona combinazione e "Cattivo" che significa non buono):
- Buono: 8224 (8224 -> 844 -> 88 -> 16)
- Buono: 2222 (2222 -> 44 -> 8)
- Buono: 22048 (22048 -> 448 -> 88 -> 16)
- Cattivo: 20482 (non è possibile combinare i 2 esterni, né è possibile combinare un 2048 e un 2)
- Buono: 20482048 (20482048 -> 4096)
- Cattivo: 210241024 (210241024 -> 22048, ma ora è [2] [2048] e non può essere combinato poiché i numeri non possono cambiare tra le mosse)
- Buono: 2048 (è già un numero)
- Cattivo: 2047 (non è un potere di 2)
- Cattivo: 11 (non ci sono 1 nel gioco)
- Buono: 000040000000 (gli zero sono spazi vuoti)
Regole varie:
- L'input può essere ovunque ragionevole, ad esempio STDIN, argomento di funzione, file, ecc.
- L'output può anche essere ovunque ragionevole, ad esempio STDOUT, valore di ritorno della funzione, file, ecc.
- Ignora le dimensioni della griglia:
22222222
dovrebbe comunque essere visualizzato true. - Non c'è il massimo per quello che potrebbe essere il numero, purché sia una potenza di due. Pertanto i numeri possibili sono qualsiasi potenza di due maggiori di 0.
- Per chi è preoccupato per gli zero che causano ambiguità, non è così. Ad esempio,
22048
può essere analizzato come uno[2] [2048]
o[2] [2] [0] [4] [8]
. Il primo non funziona, ma il secondo funziona, quindi dovrebbe essere vero. - Questo è code-golf , quindi vincerà il codice più breve in byte!
22048
output good
ma non è vero. Non puoi combinare 2
con 2048
e la griglia è 4x4
se tutti i numeri dovrebbero essere separati otterrai 5 celle. quindi forse dovresti rimuovere il 0
? Anche il tuo quinto esempio sembra non essere valido poiché il gioco termina alle 2048
:)
1