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 : Les paramètres d'une partie sont donc : 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 :

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.

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 :


Quelques liens, parmi d'autres: