Rubik's cube

J’ai commencé mon projet du rubik’s cube en python pour m’entraîner sur la manipulation de listes et d’arrays. Le modèle du cube à été revu plusieurs fois, pour améliorer la complexité du programme et le rendre plus propre et plus rapide.

Sur cette page, je vais présenter le cube en commençant pas la version 2, qui est la plus accomplie, puis la version 4 (WIP), qui fonctionne pour un Rubik’s cube à n dimensions.
Le code source sera disponible sur github une fois que le programme sera raffiné, et commenté.

L’interface

Faite avec tkinter, l’interface est très rudimentaire, mais fais le job, elle sera améliorée pour la v4 pour permettre de tourner n’importe quelle couronne.

Le bouton « solveur » ne marche pas. J’ai pensé à deux méthodes pour la résolution:
– Utiliser un algorithme de résolution simple (ceux utilisés par les débutants comme moi par exemple).
-Utiliser le Machine Learning, mais cela semble assez complexe, il faudrait sans doute créer mon propre réseau neuronal de zéro.

Le fonctionnement

Pour la version 4, le cube utilisera un array à 3 dimensions de taille n, composé d’instances de classe Piece, qui ne contiennent que les couleurs de chaque pièce du cube.

Une rotation d’une couronne du cube se fait de la manière suivante: Création d’une nouvelle couronne (un array de dimension 2 de taille n) sur laquelle on met toutes les pièces de la couronne que l’on veut tourner, mais avec une rotation.
On remplace la couronne originale par celle que l’on a créé.

L'affichage

L'affichage se fait avec tkinter à l'aide d'équations pour tracer les différents polygones du rubik's cube, qui prennent en compte la dimension du cube.