Upload
peter-shepard
View
93
Download
7
Embed Size (px)
DESCRIPTION
IUP2 GMI 2004/2005. Jeudi, 14 Avril 2005 Valenciennes. Projet Tuteuré Jeu d’Awalé. Tuteur: Colombe HERAULT. Cyrille JOSSELIN. Sommaire. 1. Sujet du projet. 2. Programme en Java. 3. Diagramme de classe. 4. Description en UML. 5. Conclusion. I/ Sujet du projet. Règles de l’Awalé. - PowerPoint PPT Presentation
Citation preview
Projet Tuteuré
Jeu d’Awalé
Cyrille JOSSELINTuteur:Colombe HERAULT
IUP2 GMI2004/2005
Jeudi, 14 Avril 2005Valenciennes
Sommaire
1. Sujet du projet
2. Programme en Java
3. Diagramme de classe
4. Description en UML
5. Conclusion
I/ Sujet du projet
Règles de l’Awalé
Le terrain de jeu est divisé en deux territoires de 6 trous chacun (4 graines par trou).Chaque joueur joue à son tour.
Le joueur va prendre l'ensemble des graines présentes dans l'un des trous de son territoire et les distribuer, une par trou. Si la dernière graine semée tombe dans un trou de l'adversaire comportant déjà 1 ou 2 graines, le joueur capture les 2 ou 3 grainesrésultantes.
Les graines capturées sont sorties du jeu.Lorsqu'un joueur s'empare de deux ou trois graines, si la case précédente contient également deux ou trois graines, elle sont capturées aussi, et ainsi de suite.
But du jeu : S’emparer d’un maximum de billesLe joueur qui a le plus de graines à la fin de la partie l'emporte
- Construire un jeu d’Awalé en Java.
-Le développer pour créer différentsmode de jeu sans modifier la base.
- Élaborer une documentation UML
Étapes du projet
-Si possible, créer une interface graphique, et plusieurs modes de jeu (en réseau ou contre l’ordinateur)
II/ Application
(Interface graphique du jeu)
- Démarrage de l’application
- Partie entre deux joueurs en cours
(C’est au joueur 2 de jouer !)
- Fenêtre DOS
(Détaille les actions)
- Fin de partie réseau
III/ Classes
Plateauen_cours : Joue
lancement()suivant()cmp_joueur(j:Joueur) : Boolmodif_score(nb:int)aff_score()rejoue()fin()lecture(joueur:int,case:int):Boolajout(joueur:int,case:int,billes:int)
Joueurnom : Stringscore : intcases[ ] : Troutrous_possibles : Vectoradversaire : Joueurnb_cases : int = 6
Joueur()joue(trou:int)liste_trous():Boolramasse_tout()gagner()valide_trou(T:Trou):Boolreste_billes():Bool
Trounum:intbilles,billesTest : int = 4precedent : Trousuivant : Trou
Trou()ramasse()deplace()deplace(nb:int,depart:Trou)test_valide()valide():Booltest_jouable(depart:Trou,nb:int):Bool
JoueurPhysique
JoueurPhysique()lecture()test_joue()attendre()
JoueurArtificiel
JoueurArtificiel()lecture()test_joue()attendre()
Comporte 21
Possède
6
1
FrameAwale
FrameAwale()initComponents()actionPerformed()lit(joueur:int,case:int)affiche_score(sc1:int,sc2:int)aff_joueur(num:int)fin(gagnant:String,score:int)
Utilise
1
1
JoueLecture()test_joue()attendre()
Client
Client()connexion()deconnexion()joue()reception()run()
Serveur
Serveur()ouvrir()emission()fermer()run()
CanvasPlateau
CanvasPlateau()init()paint()MouseClicked()ajout_billes()recup_tab()fin()
Crée1
0-1
Construit 11
0-1
1
Connecte
(interface)
(hérite)
partie,termine : Booltype : int
L,H,score_final : inttrous1,trous2 : int[]gagnant : String
fin,joue : Bool
joueur,trou : intfin : Bool
IV/ UML
Joue un trou
Local contre local
Déplace billes
Test nb billes
Modif score Affiche score
<<include>>
<<include>>
Joueur suivant
<<extend>> <<extend>>
Joueur 1Joueur 2
La case ne doit pas être vide et doit appartenir au joueur
Si le trou contient 2 ou 3 billes on les ajoute au score et on retourne au trou précédent sinon on change de joueur
Tant qu’il reste des billes à distribuer on passe au trou suivant
Saisie sur dessin
<<extends>>
<<include>>
Cas d’utilisation (use case)
Joue un trou
Local contre Ordinateur
Déplace billes
Test nb billes
Modif score
Affiche score
<<include>>
<<include>>
<<include>>
Joueur suivant
<<extend>> <<extend>>
Joueur 1
Joueur 2
La case ne doit pas être vide et doit appartenir au joueur (selection du trou en fonction du type de joueur)
Si le trou contient 2 ou 3 billes on les ajoute au score et on retourne au trou précédent sinon on change de joueur
Tant qu’il reste des billes à distribuer on passe au trou suivant
Saisie dessin(Joueur 1)
Calcul trou(Joueur 2)
<<extend>> <<extend>> Ordinateur
<<include>>
Démarrer (c: ComboBox)
{c=1}VS PC
Utilisateur 1 Plateau
{c=0|2}2 joueurs
{c=2}Création reseau
{c=3}Rejoint reseau
JoueurPhysique
Crée une instance
JoueurArtificiel
Client
Serveur
Crée une instance
Crée une instance
Trou
Crée 6 instances
Crée 6 instances
FrameAwale
{c<3}Création
Instancie
Crée une instance
Start
Start
Diagramme de séquence(Création de la partie)
Diagramme de séquence(local contre ordinateur)
FrameAwale JoueurPhysique
PlateauTrou
1:choix d’un joueur
6b/6b2: {Plus de billes}affiche score
2a:attend nombre (trou)
6b: {saisie valide}vide le trou
6a: {saisie fausse}rejoue
6b/6b1: {reste billes}Trou suivant
Utilisateur 1 CanvasPlateau
3a:MouseCliked
4a:lit nombre
5a:lecture(joueur,case)
7: affichage du score
JoueurArtificiel
a
b
2b:lecture(joueur,case)
IV/ Conclusion
-Intérêts du projet* Découvrir le jeu d’Awalé* Élaboration d’un projet avec UML* Besoin d’une rigeur de programmation* Développement en Java
-Acquis* Connaissances de le méthode UML (use case, diagramme de séquence)* Java, Java2D, Sockets* Gagner à l’Awalé !
En vous remerciant...
-A améliorer* Intelligence artificielle* Interface plus agréable