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édente | ||
| fr:cs:rapport_de_projet_d_algorithmique [2017/05/04 19:13] – [Fonctionnalités implantées :] fraggle | fr:cs:rapport_de_projet_d_algorithmique [2021/12/27 18:25] (Version actuelle) – modification externe 127.0.0.1 | ||
|---|---|---|---|
| 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 : ===== | ||
| - | - Définir | + | - Listes des coups jouables; |
| + | - Redéfinir | ||
| - 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; | ||
| - IA (AI en anglais) MiniMax; | - IA (AI en anglais) MiniMax; | ||
| - 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, " | ||