Table des matières

Solveur de Rubik Cube

Vous connaissez probablement le Rubik Cube et vous devez savoir qu'il existe des algorithmes – c'est à dire des méthodes – pour remettre un Rubik Cube dans l'ordre quelle que soit sa position de départ.

C'est ce que vous allez travailler.

Tout au long de cet exercice, quand je parle de Rubik Cube, il s'agit de l'ensemble. Quand je parle de cube, il s'agit d'un petit cube élémentaire.

Notations

Il est nécessaire de pouvoir noter de façon claire et univoque les positions et mouvements.

Les faces

Les faces visibles sont nommées

et les face cachées sont nommées

Les mouvements

Les mouvement sont toujours donnés en regardant la face la face en question. Par exemple, on dira U+ pour une rotation de U dans le sens direct – trigonométrique – quand on regarde U.

On aura donc les mouvements U+, D+, F+, B+, L+, R+ et même chose dans l'autre sens : U-, D-, F-, B-, L-, R-.

Au besoin on pourra aussi tourner les tranches centrales. U2, F2, L2, R2 de la même façon.

Enfin, on pourra tourner l'ensemble du cube.

La bonne position

Sur l'illustration, F est orange. Cela ne veut pas dire que F doit être orange. On pourrait décider de prendre la face bleue comme référence et la placer devant.

Ce sont les facettes au centre des faces qui servent de référence. Si la facette au centre de F est orange, alors la bonne position pour toutes les facette orange sera F. Mais si on tourne le cube et que la facette centrale de F devient bleue, alors c'est la nouvelle référence.

Pensez-y : si un cube est résolu et qu'on le tourne en entier, changeant la couleur sur le devant, le cube est toujours résolu !

Les coordonnées et les faces

Sur l'illustration, le cube de coin orange, rouge et bleu est à la fois sur les faces U, R et F. On pourra le nommer “FRU” ou indifféremment “RUF” ou la même chose dans n'importe quel ordre. Ce même cube est le plus loin sur les trois axes x, y et z. Ces coordonnées sont (1,1,1).

D'autres exemples sur l'illustration.

L'algorithme de résolution

Vous trouverez toutes les explications nécessaires sur ce site.

Le module fourni

Le module fourni est constitué des fichiers :

Ce qui vous intéressera se trouve dans les deux premiers et encore pas besoin de les ouvrir.

Le fichier main

Votre travail est de télécharger les modules précédents, de les placer dans un dossier et d'ajouter le fichier main.py ci-dessous :

from tkrubik import TkRubik

# mélange fixe
MELANGE = "FUFFBRUFDFBRDBDUUFLUULBRBFRRDFUUFFFFURRDUDFFRFBLBRRFLUBLBDRFB"

# création de l'objet graphique
rubik_cube = TkRubik()
rubik_cube.scramble(MELANGE)

# zone que vous devez compléter




# fin
rubik_cube.end()

Vous devez compléter la zone centrale.

fonctions utiles dans tkrubik

Le fichier main crée un objet rubik_cube dont les caractéristiques sont définies dans le fichier rkrubik.py. Ce cube est mélangé tout de suite, toujours de la même façon pour simplifier votre travail.

Listons maintenant les fonctions disponibles.

les mouvements

sélectionner un cube

fonctions utiles dans cube

Une fois que vous avez sélectionner un certain cube, par exemple avec

cube = rubik_cube.get_cube_by_coords(1,0,-1)

cube est un objet défini dans cube.py et vous avez accès à différents attributs et méthodes.

attributs

méthodes