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

Documents pareils