Projet : un jeu de Scrabble
Transcription
Projet : un jeu de Scrabble
Département IMA / 3A (S5) Programmation Structurée 2014/2015 Projet : un jeu de Scrabble Objectifs Ce projet de programmation structurée, a pour objectif de réaliser en binôme, un premier logiciel avec les notions acquises au S5 (et uniquement celles-ci). Dans ce projet, vous mettrez en oeuvre les notions vues en cours de Programmation Structurée (conception, algorithmique, développement, critiques et documentation). Ce projet est à rendre à votre responsable de TP pour le VENDREDI 9 JANVIER 2015, 18h (attention, délai de rigueur, pénalités de 5 points pour les retardataires pour chaque tranche de 24h de retard, une tranche entamée étant comptée comme complète), par email, dans une archive comportant votre code, et un rapport au format PDF (pas de remplissage, 5 pages maximum en 12 point avec mise en page standard, clair et précis donnant notamment explicitement les limitations de votre solution ; un rapport tenant sur un simple recto/verso peut, s’il contient les bonnes infos, être considéré comme trés bon). IMPORTANT : nous disposons, tout comme vous, d’internet et des diverses sources d’informations disponibles. Nous disposons également d’une expérience et d’outils qui font que le plus souvent nous retrouvons facilement vos sources d’inspirations. Nous répétons ici l’importance d’un travail autonome et honnête. Import, maquillage, reprise (simplifiée ou pas), travail communautaires, ou tout autre variation sur le même thème ne font pas partie de ce qui est demandé ici, et seront donc notés suivant des critères tout à faire spécifiques et bien plus durs que ceux utilisés normalement. Descriptif global du sujet Le Scrabble est un jeu célèbre, nous nous interessons ici à une version simplifiée. Le programme que nous souhaitons mettre en place aide deux joueurs à jouer l’un contre l’autre. Le plateau de jeu est un tableau vide de 20 cases sur 20. On considère ici (à contrario du jeu réel) qu’il n’y pas de cases type "lettre compte double" ou "mot compte double". Chaque joueur joue alternativement, le premier réalisant un total de 30 points a gagné. chaque joueur dispose, au début de son tour, de 7 lettres tirées aléatoirement parmi les lettres disponibles (le jeu réel comporte un nombre différent de chaque lettre, on considèrera ici qu’on tire les lettres sans limite de nombre). à chaque tour, le joueur a deux possibilités : — la première possibilité est qu’il arrive à placer un mot, construit à partir des mots déjà en place et d’une partie des lettres dont il dispose ; dans ce cas, sont ajoutés à son score courant les points qu’il ajoute sur le plateau, et de nouvelles lettres lui sont fournies en remplacement de celles utilisées — en cas d’echec à construire un tel mot, il choisit une lettre dont il se débarrasse, et une nouvelle lettre lui est dans ce cas fournie aléatoirement. 1 le système de comptage de points que l’on considère ici affecte les points suivants : 1 points pour une voyelle qui n’est pas ’y’, 1 points pour une consonne qui n’est ni ’x’ ni ’w’ ni ’z’ , et 3 points pour les lettres ’y’, ’x’,’w’,’z’ . On se limitera ici aux fonctionnalités décrites ci-dessus ; seules celles-ci sont suffisantes pour obtenir la note maximale à ce projet (sans avoir besoin du bonus pour cela), si le codage fonctionne, que le code est clair et bien commenté, et que le rapport est également de bonne qualité. On ne cherchera notamment pas à mettre en place de fonctions d’Undo, ou de vérification de l’existence du mot proposé par le joueur. On pourra s’aider, pour la mise en place du projet, des étapes suivantes : 1 Initialiser le jeu Mettre en place une procédure initialisant le plateau de jeu ainsi que les vecteurs des deux joueurs. 2 Afficher la grille de jeu courante Mettre en place une fonction prenant en argument la grille de jeu courante et l’affichant d’une manière compréhensible par l’utilisateur. 3 Tester si un mot peut être mis sur la version courante du plateau Une fonction devra être mise en place, retournant un booléen si le mot proposé, à l’endroit et dans la direction ou le joueur souhaite le mettre, peut effectivement etre mis à partir des lettres dont le joueur dispose ,et en tenant compte des lettres disponibles sur le plateau. 4 Permettre à un joueur de jouer Cette fonction gèrera le tour de jeu d’un joueur. On fera en sorte que cela soit la meme fonction qui est appelée (avec des valeurs de variables différentes) pour gérer le joueur 1 comme le joueur 2. 5 Boucle principale de jeu du programme Mettre en place le programme principal permettant aux joueurs de jouer. 2