Ragnulf merge requestshttps://gitlab.univ-nantes.fr/E132397K/Ragnulf/-/merge_requests2016-01-05T18:01:22Zhttps://gitlab.univ-nantes.fr/E132397K/Ragnulf/-/merge_requests/14Ajout du tuto 2016-01-05T18:01:22ZArnaud LangelierAjout du tuto Ajout d'une option '--tuto' qui permet de voir la résolution coup par coup du rubik's cube (dans un terminal)
On peut aussi utiliser l'option '--speed' pour gérer la vitesse du tutoAjout d'une option '--tuto' qui permet de voir la résolution coup par coup du rubik's cube (dans un terminal)
On peut aussi utiliser l'option '--speed' pour gérer la vitesse du tutoGuillaume CLOCHARDGuillaume CLOCHARDhttps://gitlab.univ-nantes.fr/E132397K/Ragnulf/-/merge_requests/13[WIP] Résolution du cube de A-Z2016-01-04T17:48:56ZGuillaume CLOCHARD[WIP] Résolution du cube de A-ZNouveautés :
- [x] recevoir un cube sous forme de chaîne de la part de l'utilisateur (ou si non présent, utiliser le cube par défaut)
- [x] lire le cube, retourner les erreurs si il y en a
- [x] résoudre le cube, retourner les erreurs ...Nouveautés :
- [x] recevoir un cube sous forme de chaîne de la part de l'utilisateur (ou si non présent, utiliser le cube par défaut)
- [x] lire le cube, retourner les erreurs si il y en a
- [x] résoudre le cube, retourner les erreurs si il y en a
Bonus :
- [ ] ajout d'un argument `--tuto` qui applique step by step la résolution du cube dans le terminalArnaud LangelierArnaud Langelierhttps://gitlab.univ-nantes.fr/E132397K/Ragnulf/-/merge_requests/4Algo resolution2015-12-15T10:35:12ZJimmy DOREAlgo resolution### Tâches
- [x] Cross (Jimmy @E134177U)
- [x] Trouver la croix selon n'importe quelle configuration
- [x] Code commenté abondamment
- [x] Effectuer de nombreux tests
- [ ] Minimiser le nombre de mouvements au maxi...### Tâches
- [x] Cross (Jimmy @E134177U)
- [x] Trouver la croix selon n'importe quelle configuration
- [x] Code commenté abondamment
- [x] Effectuer de nombreux tests
- [ ] Minimiser le nombre de mouvements au maximum : meilleure optimisation du code
- [x] F2L (Tom @E134636T)
- [x] OLL (Quentin @E134323D)
- [x] PLL (Jimmy @E136732X)
---
### Cross
La première partie de l'algo de résolution est fonctionnelle :
trouver la première croix (cf. https://www.youtube.com/watch?v=VwvGWNfcgs8 pour savoir quelle croix)
Plusieurs tâches ont été effectuées pour y arriver:
- Une méthode permettant de mélanger le cube en fonction d'une suite de mouvements a aussi été créée dans la structure du cube. (`scramble()`)
- Une méthode permettant de déterminer si un cube arrête ou un cube coin contient certaines couleurs (peu importe l'ordre) a aussi été créée dans la structure du cube
- Une batterie de tests sur plus de 150 configurations possibles du cube
a été effectué. (Nouveau fichier test.py, contenant la liste des mouvements)
- L'algo pour trouver la croix a évidemment été réalisé
:v:https://gitlab.univ-nantes.fr/E132397K/Ragnulf/-/merge_requests/11Fusion PLL -> Algo_resolution 2015-12-14T17:58:11ZJimmy LEBLANCFusion PLL -> Algo_resolution Fusion de pll dans la branche algo_resolution puisqu'on a un algorithme entier fonctionnel Fusion de pll dans la branche algo_resolution puisqu'on a un algorithme entier fonctionnel https://gitlab.univ-nantes.fr/E132397K/Ragnulf/-/merge_requests/10Pll2015-12-12T10:53:51ZJimmy LEBLANCPllFusion des branches pll et algo_resolution afin d'ajouter la première version de la fonction pll (dernière étape de la résolution CFOP) à l'algorithme finalFusion des branches pll et algo_resolution afin d'ajouter la première version de la fonction pll (dernière étape de la résolution CFOP) à l'algorithme finalhttps://gitlab.univ-nantes.fr/E132397K/Ragnulf/-/merge_requests/8Délocalisation de ftl_valide et refactor2015-12-11T12:44:50ZGuillaume CLOCHARDDélocalisation de ftl_valide et refactorJ'ai délocalisé `ftl_valide()` dans `utils.py` et refactor comme `cross_valide()` pour éviter la cascade de `if`.
Merge si ça te convient toujours Tom @E134636T J'ai délocalisé `ftl_valide()` dans `utils.py` et refactor comme `cross_valide()` pour éviter la cascade de `if`.
Merge si ça te convient toujours Tom @E134636T https://gitlab.univ-nantes.fr/E132397K/Ragnulf/-/merge_requests/9Rotations doubles2015-12-11T11:39:07ZArnaud LangelierRotations doublesAjout des rotations doubles dans la modélisation du cube
Edit : modification de la fonction mouvement pour la prise en compte des nouvelles rotationsAjout des rotations doubles dans la modélisation du cube
Edit : modification de la fonction mouvement pour la prise en compte des nouvelles rotationsArnaud LangelierArnaud Langelierhttps://gitlab.univ-nantes.fr/E132397K/Ragnulf/-/merge_requests/7Fix cross2015-12-07T07:46:28ZGuillaume CLOCHARDFix crossPetit refactor de `cross__facile()`. La logique reste absolument la même, c'est juste cosmétique.
- délocalisation de `croix_valide()` dans `utils.py`
- création de `Cube.mouvements()` qui fait comme `Cube.scramble()` mais avec une l...Petit refactor de `cross__facile()`. La logique reste absolument la même, c'est juste cosmétique.
- délocalisation de `croix_valide()` dans `utils.py`
- création de `Cube.mouvements()` qui fait comme `Cube.scramble()` mais avec une liste en paramètre
- Nettoyage doc sur `cross_facile()`
- Utilisation de `Cube.mouvements()` dans `cross_facile()` pour gagner en nombre de lignes et garder plus facilement la liste des mouvements effectués.
- `cross_facile()` ne prend plus de liste de mouvements mais renvoie `(<Cube>, <Liste de mouvements>)`
J'espère que l'utilisation de `Cube.mouvements()` n'impacte pas les perfs. Je vais regarder ça.
Merge si ça te convient Jimmy @E134177U. https://gitlab.univ-nantes.fr/E132397K/Ragnulf/-/merge_requests/6Refactor Cube.scramble()2015-12-06T17:10:38ZGuillaume CLOCHARDRefactor Cube.scramble()Refactor `Cube.scramble()` pour économiser des lignes et rester DRY.
Merge si ça te convient Jimmy @E134177U. :koala: Refactor `Cube.scramble()` pour économiser des lignes et rester DRY.
Merge si ça te convient Jimmy @E134177U. :koala: https://gitlab.univ-nantes.fr/E132397K/Ragnulf/-/merge_requests/5Fix Cube.cube_contient_couleur()2015-12-06T16:54:08ZGuillaume CLOCHARDFix Cube.cube_contient_couleur()Petites modifs de `Cube.cube_contient_couleur()` :
- fix pb si `petit_cube` est un coin
- ajout doc
- refactor pour faire moins de `if`
Merge si ça te convient Jimmy @E134177U :raising_hand: Petites modifs de `Cube.cube_contient_couleur()` :
- fix pb si `petit_cube` est un coin
- ajout doc
- refactor pour faire moins de `if`
Merge si ça te convient Jimmy @E134177U :raising_hand: https://gitlab.univ-nantes.fr/E132397K/Ragnulf/-/merge_requests/3Getter facette2015-12-03T15:36:22ZQuentin BILLAUDGetter facetteNouveau Getter qui permet de savoir la couleur d'une facette en fonction du petit cube et de l'indice dans celui-ci.Nouveau Getter qui permet de savoir la couleur d'une facette en fonction du petit cube et de l'indice dans celui-ci.Quentin BILLAUDQuentin BILLAUDhttps://gitlab.univ-nantes.fr/E132397K/Ragnulf/-/merge_requests/2Lecture entree #52015-12-03T13:35:27ZJimmy DORELecture entree #5#5
Voici la fonction de la lecture d'entree.
A partir d'une chaîne de caractère qui a pour schéma les 54 facettes du cube ("OGRBWYBGBGYYOYOWOWGRYOOOBGBRRYRBWWWRBWYGROWGRYBRGYWBOG"), la fonction va prendre cette chaîne
et renvoyer ...#5
Voici la fonction de la lecture d'entree.
A partir d'une chaîne de caractère qui a pour schéma les 54 facettes du cube ("OGRBWYBGBGYYOYOWOWGRYOOOBGBRRYRBWWWRBWYGROWGRYBRGYWBOG"), la fonction va prendre cette chaîne
et renvoyer un cube initialisé avec les bonnes valeurs.
La classe Cube se trouve dans !1 , réalisé par @E132397K
---
La fonction est entièrement fonctionelle, mais une optimisation est possible
:v: https://gitlab.univ-nantes.fr/E132397K/Ragnulf/-/merge_requests/1Structure du cube #42015-12-01T19:59:42ZGuillaume CLOCHARDStructure du cube #4[WIP]
*Ne pas merger tout de suite, le travail sur les rotations peut se faire dans cette branche et celui sur la lecture dans une branche créée à partir de 547c5734.*
Yo :v:
Voilà une classe Cube (dans `Cube.py`) implémentée ...[WIP]
*Ne pas merger tout de suite, le travail sur les rotations peut se faire dans cette branche et celui sur la lecture dans une branche créée à partir de 547c5734.*
Yo :v:
Voilà une classe Cube (dans `Cube.py`) implémentée comme statué dans #4.
Voir la fin du fichier `poqb.py` pour exemple d'utilisation de la classe (en particulier pour toi Jimmy @E134177U pour commencer la lecture de l'entrée).
:warning: Pour installer `numpy` sur votre machine :
```bash
//vous utilisez python3
(sudo -H) pip3 install numpy
```
cc @E134067A @E134177U @E136732X @E134323D @E134636T @E132397K