Résoudre le Mini-Rubik

Cette petite application permet de résoudre le Mini-Rubik (la version 2x2x2 du Rubik original). Ce programme trouve toujours la solution minimale. Ceci a été prouvé formelllement en Coq (see here). Pour entrer une configuration particulière, vous devez manuellement éditer le cube. Cette édition se fait avec les touches suivantes: "Enter", "Backspace", "→", "←", "↑" et "↓". À n'importe quel moment, on peut faire pivoter le cube en cliquant sur le cube avec le bouton gauche de la souris et, sans relacher le bouton de la souris, en se déplaçant dans la direction désirée.

Pour invalider tous les petits cubes il suffit d'appuyer plusieurs fois sur la touche "Backspace". Ceci donne:



Le petit cube que l'on est en train d'éditer est en gris. Pour selectionner le petit cube qui va à cette position, il suffit d'appuyer sur les touches "→" et "←".



Une fois que le petit cube a été choisi, on peut en règler l'orientation avec les touches "↑" et "↓".



Une fois le cube bien orienté, on peut le valider pour passer au cube suivant en appuyant sur la touche "Enter":



Il suffit alors de répéter cette opération de choix et d'orientation pour obtenir la configuration désirée:



Maintenant la solution la plus rapide est obtenue en appuyant sur la touche "Enter":



La solution est affichée avec la notation usuelle (r pour le rotation droite dans le sens des aiguilles d'une montre, b pour une rotation arrière et d pour une rotation basse, les rotations dans le sens inverse des aiguilles d'une montre sont représentées par un exposant négatif comme par exemple dans r-1, les demi-tours par des carrés comme dans r2). La solution peut être animée pas-à-pas. Le pas courant est affiché en rouge. Pour effectuer ce pas, il suffit d'appuyer sur la touche "Enter":



On peut aussi le défaire en appuyant sur la touche "Backspace". Si on valide tous les mouvements on obtient biensûr le cube initial: