Mini Projet Programmation
Vous allez jouer au Scrabble !!
Les éléments du jeu
(cf. un (!) règlement
officiel du Scrabble duplicate francophone)
Le Jeu de Scrabble est constitué d'une grille de cases.
A chaque case peut être associé un bonus : lettre
compte double, lettre compte triple, mot compte double, mot compte triple,
pas de bonus.
La grille standard est de taille 15 x 15, les lignes sont numérotées
de A à O et les colonnes de 1 à 15.
Un pion est constitué par une lettre et une valeur (points
apportés en plaçant cette lettre).
Chaque pion a une valeur unique, et correspond à une lettre
unique sauf pour les jockers qui valent 0 et peuvent représenter
n'importe quelle lettre.
Voici la liste des valeurs et le nombre de pions de chaque type pour
la version française du scrabble :
A1 : 9 |
B3 : 2 |
C3 : 2 |
D2 : 3 |
E1 : 15 |
F4 : 2 |
G2 : 2 |
H4 : 2 |
I1 : 8 |
J8 : 1 |
K10 : 1 |
L1 : 5 |
M2 : 3 |
N1 : 6 |
O1 : 6 |
P3 : 2 |
Q8 : 1 |
R1 : 6 |
S1 : 6 |
T1 : 6 |
U1 : 6 |
V4 : 2 |
W10 : 1 |
X10 : 1 |
Y10: 1 |
Z10 : 1 |
Blanc : 2 |
|
(A1 : 9 signifie qu'il y a 9 lettres A de valeur 1)
Au départ il y a 102 pions (dont 2 jockers) dans la pioche.
Déroulement d'une partie avec votre programme
Une partie se joue de la façon suivante :
-
Votre programme tire L lettres de manière aléatoire (en standard
L = 7) et elles sont affichées.
-
Vous choisissez un mot à former et (selon les directives règlementaires)
vous donnez le mot en entier (y compris les éventuelles lettres
déjà sur la grille) et la position où le placer en
utilisant la référence alphanumérique utilisé
pour les joueurs de scrabble. Tout mot placé horizontalement requiert
une référence lettre-chiffre (par exemple G 4) et tout mot
placé verticalement requiert une référence chiffre-lettre
(par exemple 5 D).
-
Votre programme vérifie que votre proposition est valide, c'est-à-dire:
-
pour le premier mot, il doit recouvrir la case étoilée centrale.
-
pour les mots suivants, ils sont placés soit perpendiculairement,
soit parallèlement à un mot déjà placé
(dans ce cas, le ou les nouveaux mots créés simultanément
doivent aussi être valables).
-
les mots doivent toujours être écrits de gauche à droite
ou de haut en bas
-
un mot déjà placé peut être prolongé
dans un sens, dans l'autre ou dans les deux (par exemple note peut
être complété pour devenir dénotera)..
-
si votre proposition est valide, la nouvelle grille vous est affichée
avec les points marqués pour ce coup et le total de vos points,
sinon le programme vous indique votre erreur et vous invite à réessayer.
-
le programme tire le nombre de lettres qui manquent pour avoir L lettres
et ça recommence
-
La partie s'arrête quand vous le souhaitez ou quand vous ne trouvez
plus de mots à placer.
Les paramètres d'une partie sont donc :
-
la grille de jeux : dimension, disposition des cases bonus
-
le nombre L de pions (lettres) dont vous disposez à chaque tour
-
Le nombre de pions disponibles dans la pioche en début de partie
et leur valeur
Ils auront tous par défaut la valeur correspondant à celle
du Scrabble francophone.
Quelques conseils
Prenez le temps nécessaire pour déterminer les classes à
implémenter et la répartition du travail dans le binôme.
Evaluez la faisabilité du travail. Nous préférons
que vous limitiez le sujet proposé et que le travail effectué
soit correct plutôt que vous cherchiez à en faire trop sans
aboutir.
Vous devez prévoir un constructeur par défaut qui crée
une grille standard conforme aux règles du scrabble francophone.
N'oubliez pas de tester les limites de votre programme pour ce qui est
du placement d'un mot (par exemple il doit tenir dans la grille!).
Pour le tirage au sort, faites attention qu'il peut y avoir plusieurs
pions identiques dans la pioche.
Utilisez les packages
Des extensions envisageables du sujet
Jouer à plusieurs joueurs.
Pouvoir revenir en arrière, et rejouer.
Pouvoir jouer avec des versions non francophones du scrabble
Conformément aux règles "officielles", contrôler
que chaque tirage comporte au minimum :
-
pour les quinze premiers coups : deux voyelles et deux consonnes, si le
reliquat le permet ;
-
à partir du seizième coup (ou plus tôt du fait du reliquat)
: une voyelle et une consonne.
-
Et refaire un tirage sinon.
Conserver les parties, les scores, faire des statistiques.
Vérifier que les mots placés sont des mots corrects avec
la mise en place d'un dictionnaire de mots.... Le sujet proposé
permet volontairement de donner des mots qui n'ont aucune signification
et qui sont mal orthographiés.
Organisation du projet
Vous devez travailler en binôme. Le binôme doit être
constitué dans votre groupe de TD. Vous devez changer de binôme
par rapport aux projets précédents; les étudiants
seuls dans un précédent projet doivent être binômés.
La constitution du binôme doit être effective en début
de semaine 50. Vous avez 2 semaines avec 3 séances réservées
au mini projet. Seule la première séance sera encadrée.
Pour toute question concernant ce projet, vous passez par le groupe
de discussions essi.essi1.projet.
Votre responsable de TP vous libérera une séance de TPs
de java de la première semaine pour le projet.
Les autres ne sont pas consacrées au mini projet.
-
Tuteur Gr 1 : Diane Lingrand (lingrand@essi.fr)
-
Tuteur Gr 2 : Igor Litovsky (lito@essi.fr)
-
Tuteur Gr 3 : Anne-Marie Déry (pinna@essi.fr)
-
Tuteur Gr 4 : Igor Litovsky (lito@essi.fr)
-
Tuteur Gr 5 : Mireille Fornarino (blay@essi.fr)
En fin de première séance vous devez avoir établi
les classes à implémenter et la répartition des programmeurs.
Cette information doit être livrée dans le répertoire
projet qui vous est consacré dès la fin de la première
séance. Vous devez prévoir la dernière séance
pour préparer votre rendu et faire des tests poussés de votre
programme.
Le projet devra être remis comme d'habitude sous le compte projet
le vendredi 21 décembre 24h au plus tard.
Nous passerons en séance de Math Discrète après
les vacances pour une démo (qui sera réalisée à
partir du compte projet) et discuter avec vous de votre travail.
Travail à rendre
Vous respecterez les instructions usuelles (notice de rendu de projet)
encore mieux que précédemment !
De plus les spécifications intermédiaires seront livrées
sous forme de javadoc.
Pour nous permettre de jouer vous livrerez également :
-
Un mode d'emploi du jeu... Eh oui !!
-
Un jeu de tests
Quelques liens, parmi d'autres: