Projet Tuteuré Jeu d’Awalé

14
Projet Tuteuré Jeu d’Awalé Cyrille JOSSELIN Tuteur: Colombe HERAULT IUP2 GMI 2004/2005 Jeudi, 14 Avril 2005 Valenciennes

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

Transcript of Projet Tuteuré Jeu d’Awalé

Page 1: Projet Tuteuré Jeu d’Awalé

Projet Tuteuré

Jeu d’Awalé

Cyrille JOSSELINTuteur:Colombe HERAULT

IUP2 GMI2004/2005

Jeudi, 14 Avril 2005Valenciennes

Page 2: Projet Tuteuré Jeu d’Awalé

Sommaire

1. Sujet du projet

2. Programme en Java

3. Diagramme de classe

4. Description en UML

5. Conclusion

Page 3: Projet Tuteuré Jeu d’Awalé

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

Page 4: Projet Tuteuré Jeu d’Awalé

- 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)

Page 5: Projet Tuteuré Jeu d’Awalé

II/ Application

(Interface graphique du jeu)

- Démarrage de l’application

Page 6: Projet Tuteuré Jeu d’Awalé

- Partie entre deux joueurs en cours

(C’est au joueur 2 de jouer !)

Page 7: Projet Tuteuré Jeu d’Awalé

- Fenêtre DOS

(Détaille les actions)

Page 8: Projet Tuteuré Jeu d’Awalé

- Fin de partie réseau

Page 9: Projet Tuteuré Jeu d’Awalé

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

Page 10: Projet Tuteuré Jeu d’Awalé

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)

Page 11: Projet Tuteuré Jeu d’Awalé

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>>

Page 12: Projet Tuteuré Jeu d’Awalé

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)

Page 13: Projet Tuteuré Jeu d’Awalé

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)

Page 14: Projet Tuteuré Jeu d’Awalé

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