CUBO DI RUBIK

Il cubo e tre modi di risolverlo

Un cubo 3×3 in 3D da girare nel browser: mescolalo, giocaci, e quando ti arrendi guarda come si chiude. Non con una soluzione sola, ma con tre — il metodo per principianti, il CFOP di chi va veloce e l'algoritmo ottimale — mostrate mossa per mossa, avanti e indietro, con il nome della fase in cui ti trovi. Gratis, senza registrazione, tutto sul tuo dispositivo.

Trascina fuori dal cubo per girare la vista. Le mosse si danno con i pulsanti o da tastiera: lettera minuscola = senso orario, maiuscola = antiorario.

Come si usa

«Mescola» applica venti mosse casuali, come si fa a una gara. Da lì puoi girare le facce a mano — con i pulsanti sotto il cubo, oppure da tastiera con U R F D L B e le tre fette centrali M E S. La lettera minuscola gira in senso orario, la maiuscola in senso antiorario.

Quando premi uno dei tre risolutori compare la lista delle mosse. Puoi scorrerla un passo alla volta con le frecce, tornare indietro, o lasciarla andare da sola con «Auto». Sopra la lista resta sempre scritto in che fase sei: è quella riga che trasforma un elenco di sigle in qualcosa da cui si impara.

I tre risolutori

Principiante — il metodo a strati

Quello che si insegna a chi comincia: croce sul fondo, angoli del primo strato, spigoli del secondo, poi l'ultimo strato in quattro tempi. Circa centocinquanta mosse: tante, ma ogni fase ha un nome, e guardandola scorrere il metodo si impara davvero. È scritto a mano dentro la pagina, non viene da nessuna libreria.

CFOP — quello di chi va veloce

Il metodo Fridrich, lo standard dello speedcubing: croce, F2L (primi due strati insieme), OLL (orienta l'ultimo strato), PLL (permuta l'ultimo strato). Circa sessantasei mosse, meno della metà del metodo a strati. Le quattro fasi sono mostrate separate, e le sigle OLL e PLL che vedi passare sono le stesse che trovi nell'allenatore.

Ottimale — l'algoritmo a due fasi

L'algoritmo di Kociemba: una ventina di mosse, spesso ventidue. Nessun nome di fase, nessuna logica leggibile — è una ricerca in uno spazio di stati, non un metodo umano. La prima volta impiega circa un secondo a costruire le sue tabelle, e le costruisce in un thread separato perché la pagina non si blocchi.

Domande frequenti

Le soluzioni funzionano sempre?

Sì, ed è misurato: 1200 cubi mescolati con venti mosse, risolti da tutti e tre i metodi, con la soluzione riapplicata allo stato di partenza per controllare che il cubo si chiudesse davvero. 1200 su 1200 per ciascuno. In più, prima di mostrarti una soluzione la pagina la ricontrolla sul tuo cubo: se non lo chiudesse, te lo direbbe invece di fartela seguire.

Quante mosse fa ciascun metodo?

Sugli stessi 1200 cubi: metodo a strati 149 mosse mediane, CFOP 66, algoritmo ottimale 22. La differenza è tutta lì — il metodo a strati sistema un pezzo alla volta, il CFOP ne sistema due insieme, l'algoritmo ottimale non sistema niente e cerca la strada più corta.

Posso girare il cubo per vedere il retro?

Sì: trascina fuori dal cubo e la vista ruota. Le mosse restano riferite alle facce del cubo, non a come lo stai guardando, quindi la U è sempre la faccia gialla anche se te la sei girata dietro.

La partita si salva?

Sì, lo stato del cubo resta nella memoria locale del browser: chiudi la scheda e lo ritrovi mescolato com'era. Non lascia mai il tuo dispositivo.

Usa librerie esterne?

Due, per due dei tre risolutori: cubejs per la soluzione ottimale e rubiks-cube-solver per il CFOP, entrambe MIT. Stanno sul dominio, non su una CDN: il browser non contatta nessun server di terze parti. Il metodo a strati, il motore del cubo e la grafica sono scritti qui.

Serve una scheda grafica o WebGL?

No. Il cubo è fatto con le trasformazioni 3D dei CSS, ventisette cubetti e basta: gira su qualsiasi telefono recente senza toccare WebGL.

Com'è fatto

Il pezzo che mi interessava non era la grafica ma il motore. Le permutazioni di un cubo si scrivono di solito come tabelle di 54 numeri copiate a mano — e un numero sbagliato dà un cubo che sembra funzionare finché non lo mescoli abbastanza. Qui le tabelle non sono scritte: sono calcolate dalla geometria. Ogni facelet conosce la sua posizione e la sua normale; una mossa è una rotazione di 90° di quei due vettori, e la permutazione cade fuori da sola. Nessuna cifra da sbagliare.

Lo stesso principio vale per il controllo: l'animazione non è «più o meno giusta», è verificata contro la permutazione. Se il colore finisce da una parte e il cubetto gira dall'altra, il collaudo se ne accorge. È la differenza fra un cubo che sembra a posto e uno che lo è.

Poi c'è la parte noiosa e onesta: due delle tre soluzioni vengono da fuori, quindi vanno collaudate come si collauda qualcosa di cui non ti fidi. Il CFOP, per esempio, emette ogni tanto una notazione strana — MPRIME2 per un mezzo giro di fetta centrale — che chi la lascia passare perde la mossa e si ritrova con un cubo che non si chiude, una volta su quattrocento. Si è visto perché ogni soluzione viene riapplicata e ricontrollata, non perché fosse scritto da qualche parte.

È lo stesso modo di lavorare che uso sui prodotti veri: un caso concreto è Miraviso, e se serve una mano su qualcosa di simile si parte da qui.

Timer da speedcubing → Allenatore OLL/PLL →

← Tutti i giochi