Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédenteDernière révisionLes deux révisions suivantes | ||
fr:cs:rapport_de_projet_d_algorithmique [2017/05/04 19:19] – [Fonctionnalités à implanter :] fraggle | fr:cs:rapport_de_projet_d_algorithmique [2017/05/05 20:31] – [Classification de l'analyse] fraggle | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== | + | ====== |
===== Analyse des problématiques algorithmiques du jeu ===== | ===== Analyse des problématiques algorithmiques du jeu ===== | ||
Ligne 7: | Ligne 7: | ||
* Diviser pour mieux régner : | * Diviser pour mieux régner : | ||
Découpage des problématiques algorithmiques en sous-problèmes dit simples autant au niveau complexité (on parle de la notation "big O" ici) que difficulté d' | Découpage des problématiques algorithmiques en sous-problèmes dit simples autant au niveau complexité (on parle de la notation "big O" ici) que difficulté d' | ||
+ | |||
+ | ==== Résultante de l' | ||
Cela a conduit à l' | Cela a conduit à l' | ||
Ligne 14: | Ligne 16: | ||
==== Pas de " | ==== Pas de " | ||
- | * Implantation de fonctions outils : get_*, set_*, print_*, print_all_*, | + | * Implantation de fonctions outils : get_*, set_*, print_*, print_all_*, |
* Indépendance de l' | * Indépendance de l' | ||
* Séparation claire entre le modèle de données et leurs présentations (architecture proche du MVC). | * Séparation claire entre le modèle de données et leurs présentations (architecture proche du MVC). | ||
Ligne 27: | Ligne 29: | ||
==== Ne pas réinventer la roue : ==== | ==== Ne pas réinventer la roue : ==== | ||
- | * Utilisation de bibliothèques pour gérer l' | + | * Utilisation de bibliothèques pour gérer l' |
* Réutilisation de code disponible en ligne couvrant une fonctionnalité de base demandée mieux que je ne l' | * Réutilisation de code disponible en ligne couvrant une fonctionnalité de base demandée mieux que je ne l' | ||
* Réutilisation du système de construction (à base de Makefile) déjà implanté lors d' | * Réutilisation du système de construction (à base de Makefile) déjà implanté lors d' | ||
Ligne 33: | Ligne 35: | ||
==== Style du code de l’implantation : ==== | ==== Style du code de l’implantation : ==== | ||
- | Calqué sur le style de Kernighan and Ritchie aka K&R avec de légères modifications sur le placement des parenthèses pour les déclarations de fonctions. | + | Calqué sur le style de Kernighan and Ritchie aka K&R avec de légères modifications sur le placement des parenthèses pour les déclarations de fonctions.\\ |
[[https:// | [[https:// | ||
Ligne 41: | Ligne 42: | ||
* Affichage de l' | * Affichage de l' | ||
* Saisie d'un coup; | * Saisie d'un coup; | ||
- | * Détection des conditions de fin de jeu : othellier plein ou plus de coups jouables pour les deux joueurs; | + | * Détection des conditions de fin de jeu : othellier plein ou plus de coups jouables pour un des deux joueurs; |
* Boucle de jeu complète; | * Boucle de jeu complète; | ||
* Retournement des pions après un coup; | * Retournement des pions après un coup; | ||
- | * Listes des coups jouables; | ||
* Jeu pour deux joueurs humains. | * Jeu pour deux joueurs humains. | ||
===== Fonctionnalités à implanter : ===== | ===== Fonctionnalités à implanter : ===== | ||
+ | - Listes des coups jouables; | ||
- Redéfinir plus proprement certains types de donnés; | - Redéfinir plus proprement certains types de donnés; | ||
- Implantation de la fonctionnalité de retour en arrière dans la liste des coups joués; | - Implantation de la fonctionnalité de retour en arrière dans la liste des coups joués; | ||
Ligne 54: | Ligne 55: | ||
- Graphical User Interface aka GUI avec [[https:// | - Graphical User Interface aka GUI avec [[https:// | ||
- | ===== Problèmes | + | ===== Problèmes |
- | + | ||
- | Fonction d' | + | |
- | * la liste des pions à retourner; | + | |
- | * la liste des coups jouables pour un joueur. | + | |
- | Problèmes avec l' | + | * Gestion du tableau à deux dimensions : retour de fonctions conjointement avec passage par adresse, donc des chevauchements mémoires et autres bizarreries (le même objet était retourné deux fois par les fonctions ...) |
+ | |||
+ | * Fonction d' | ||
+ | * la liste des pions à retourner; | ||
+ | * la liste des coups jouables pour un joueur. | ||
+ | Problèmes avec l' | ||
Remplacement par implantation d'une version itérative de l’algorithme. | Remplacement par implantation d'une version itérative de l’algorithme. | ||
+ | |||
+ | Au total, " | ||