** Enonce Jarnac (a mettre en forme avec markdown) Jarnac est un jeu de societé pour deux personnes dont la règle est à disposition dans le fichier .pdf fourni. -------> commentaire: faut t-il raconter le jeu ici? ou mettre seulement une image de l'interface minimaliste? Le but de ce projet est de développer en binome une application pour permettre à une ou deux personnes positionnées devant le même ordinateur de jouer à Jarnac sans matériel physique de jeu. Le dictionnaire est fourni dans le fichier ici. - Modification apportées à la règle ----------------------------------- Pour permettre un jeu plus fluide, et par ce que les erreurs de frappe sont toujours possibles, il est accepté que la validation des mots par le dictionnaire soit automatique et sytematique et qu'aucune contestation ou pénalité en cas de mot non valide ne soit gérée par votre application. Toute les autres fonctionnailté du jarnac doivent être implantée en C++ avec uniquement le matériel et les notions vues en cours au semestre en cours info 111. - Moteur (comment le jeu est programmé) --------------------------------------- Vos fichiers de moteur de jeu doivent pouvoir le faire fonctionner pour que deux joueurs puissent s'amuser mais aussi être suffisament documentés pour qu'un non érudit soit autonome (en mode 1 joueur ou deux joueurs). - Interfaces utilisateurs (vue: ce que le joueur voit à l'écran et controleur: comment le joueur interagit avec la machine) ---------------------------------------- L'application devra pouvoir fonctionner au choix selon au moins deux interfaces utilisateurs différentes. Une des votres et la Vue minimaliste fournie ici. Une interface utilisateur est jouable si elle permet aisément à un non initié de jouer et d'être guidé dans le jeu. -------> commentaire: mettre une photo du jarnac, une image de l'interface minimaliste Le moteur du jeu doit être pour commun aux deux interfaces (calcul des points, structures de données etc.). Conseils: utilisez tant que possible la compilation séparée. C'est à dire au moins un fichier pour le moteur du jeu, un autre pour la gestion du dictionnaire, les fichiers de l'interface minimaliste et vos fichiers d'interface utilisateur devront être des fichiers.cpp séparé. pour l'interface minimaliste un jarnacVueMinimaliste.h est fourni ici. - IA ----------------------------------------- Une IA (pour intelligence artificielle, ou comment un ordinateur fait pour simuler un joueur) est la possibilité pour l'ordinateur de simuler le deuxième joueur. Dans ce jeu, une bonne IA doit pouvoir jouer chaque fois qu'un coup est possible. Face a une telle IA aucun Jarnac ne serait alors possible. Pour rendre le jeu plus intéressant face a l'IA, on peut affaiblir cette IA en la faisant jouer avec un dictionnaire incomplet. Le projet se fait en binome choisi avec votre chargé de TP lors de la première séance. L'ensemble des fichiers sera déposé avant la soutenance sur le dépot prévu à cet effet (-------> commentaire: prévoir le dépôt) Pour l'évaluation de votre projet les thèmes suivants seront etudiés (chacun étant noté de manière identique sur nbPoints (0 = absence, max = perfection) puis la somme sera ramenée sur 20 : -------> commentaire: à réorganiser en codage, contenu, documentation, efficacité I) Regles de codages: organisation : séparation entre codage du moteur et codage de l'interface organisation : fonctions courtes avec entrées/sorties pertinantes presentation : tabulation correcte presentation : présence d'une compilation séparée d'au moins 5 fichiers différents presentation : choix pertinant des noms de variables et de fonction qualite : lisibilite du code interne des fonctions qualite : présence de test unitaire pour toutes les fonctions du moteur de jeu qualite : absence de redondance (sauf en cas de chagement de bibliothèque) documentation : présence d'un descriptif de chaque fonction documentation : présence d'un mode d'emploi joueur et utilisateur II) Règles de fonctionnement du binome équilibre : répartition équitable du travail au sein du binome équilibre : répartition de la prise de parole lors de la soutenance sérieux : respect des délais de depôt des documents. sérieux : repartition temporelle du travail (éviter le travail en derniere minute) III)Efficacité de la programmation points : calcul correct des points pioche : gestion cohérente des pioches confort : jouabilité (respect des règles du jeu et guidance des joueurs) dictionnaire : recherche correcte d'un mot dans le dictionnaire fourni dictionnaire : possibilité d'employer un autre dictionnaire + amelioration : proposition d'extension (définir le jeu à plus de joueurs, joueur avec d'autres règles etc. ) V) Gestion des interactions avec l'utilisateur : compatibilité : interaction possible avec l'interface utilisateur minimaliste fournie réutilisabilité : cohabitation de deux interfaces utilisateurs avec un moteur commun + amelioration : existence d'une interface graphique amelioration : confort de la recherche du mot pour le joueur avant validation (chevalet) VI) (facultatif) Intelligence Artificielle (IA): existence d'une IA qui trouve une solution si il y en a une. mode de jeu Humain contre humain / mode humain contre IA/ mode de jeu IA contre IA. affaiblir l'IA en la faisant jouer avec un dictionnaire incomplet. + améliorer l'efficacité de l'IA en évitant de répéter des calculs améliorer la performance de l'IA en lui faisant choisir de meilleurs coups.