controleur
Class Stratego

java.lang.Object
  extended by javax.microedition.midlet.MIDlet
      extended by controleur.Stratego

public class Stratego
extends javax.microedition.midlet.MIDlet

La classe Stratego fait office de gestionnaire de jeu. C'est le contrôleur du modèle MVC (Modèle - Vue - Contrôleur).


Field Summary
private  Case caseArrivee
           
private  Case caseOrigine
           
private  boolean caseSelectionnable
           
private  StrategoClient client
           
static java.lang.String COLOR_BLUE
          constante permettant de définir la couleur rouge
static java.lang.String COLOR_RED
          constante permettant de définir la couleur rouge
private  Case dernierCoup
           
private  javax.microedition.lcdui.Display display
           
private  boolean egalite
           
private  Fenetre fenetreDeJeu
           
private  Joueur joueurEnCours
           
private  IA joueurIA
           
private  Joueur joueurSpectateur
           
private  Langue langueChoisie
           
private  MenuPrincipal menuPrincipal
           
static int MODE_1_JOUEUR
          constante permettant de définir le mode 1 joueur
static int MODE_2_JOUEURS
          constante permettant de définir le mode 2 joueurs
private  int modeDeJeu
           
private  boolean partieFinie
           
private  Pion pionGagnant
           
private  Pion pionPerdant
           
private  boolean pionsPlaces
           
private  Plateau plateauDeJeu
           
private  Sauvegarde sauvegarde
           
private  StrategoServer serveur
           
private  boolean sonActif
           
private  java.lang.Thread thread
           
 
Constructor Summary
Stratego()
          Constructeur
 
Method Summary
 void chargerUnePartie(int indice)
          Charge une partie à partir de la sauvegarde numéro indice
 void creerPartieMultiJoueurs()
          Crée une partie en mode multijoueurs
 void creerPartieSolo(java.lang.String couleurChoisie)
          Crée une partie en mode 1 joueur
 void destroyApp(boolean arg0)
          Arrète l'application
 void fermerFlux()
          Ferme les flux ouverts si le bluetooth est activé.
private  void gestionCombat()
          Gère les combats entre deux pions
private  void gestionDeplacementPion()
          Gère le déplacement d'un pion sur une autre case.
 Case getCaseArrivee()
           
 Case getCaseOrigine()
           
 StrategoClient getClient()
           
 Case getDernierCoup()
           
 javax.microedition.lcdui.Display getDisplay()
           
 Fenetre getFenetreDeJeu()
           
 Joueur getJoueurEnCours()
           
 IA getJoueurIA()
           
 Joueur getJoueurSpectateur()
           
 Langue getLangueChoisie()
           
 int getModeDeJeu()
           
 Pion getPionGagnant()
           
 Pion getPionPerdant()
           
 Plateau getPlateauDeJeu()
           
 StrategoServer getServeur()
           
 void initialiser()
          Réinitialise l'instance de Stratego
 void inverserJoueurs()
          Inverse le joueur en cours et le joueur spectateur
 boolean isCaseSelectionnable()
           
 boolean isEgalite()
           
 boolean isPartieFinie()
           
 boolean isPionsPlaces()
           
 boolean isSonActif()
           
 void jouerCoup()
          Stratego connaît deux instances de joueurs : celui qui joue celui qui attend que le premier joue Ces deux joueurs sont inversés à chaque coup joué
 void menuPrincipal()
          Affiche le menu Principal
 void notifierAdversaire()
          Prévient l'adversaire que l'on a quitté (mode 2 joueurs seulement)
 void nouvellePartie()
          Lance une nouvelle partie
 void partieGagnee(java.lang.String couleurGagnant)
          Cette méthode est appelée si un joueur gagne
 void pauseApp()
          Met l'application en pause
 void read(java.io.DataInputStream inputStream)
          Lit un Stratego et récupère tous ses attributs à partir d'un flux d'entrée
 void sauvegarderPartie(int indice)
          Sauvegarde une partie sur la sauvegarde numéro indice
 void setCaseArrivee(Case caseArrivee)
           
 void setCaseOrigine(Case caseOrigine)
           
 void setClient(StrategoClient client)
           
 void setEgalite(boolean egalite)
           
 void setJoueurEnCours(Joueur unJoueur)
           
 void setJoueurIA(IA joueurIA)
           
 void setJoueurSpectateur(Joueur unJoueur)
           
 void setLangueChoisie(Langue langue)
           
 void setModeDeJeu(int mode)
           
 void setPionGagnant(Pion pionGagnant)
           
 void setPionPerdant(Pion pionPerdant)
           
 void setPionsPlaces(boolean pionsPlaces)
           
 void setPlateauDeJeu(Plateau plateau)
           
 void setServeur(StrategoServer serveur)
           
 void setSonActif(boolean actif)
           
 void startApp()
          Démarre l'application affichant le menu principal
 void verifierDeplacement(Case caseSelectionnee)
          Lors de la selection d'une case, verifier qu'elle est valide : les cases doivent être des cases terrain pour la caseOrigine : elle doit contenir un pion deplacable de la couleur du joueurEnCours pour la caseArrivee : elle doit être vide ou contenir un pion.
 void write(java.io.DataOutputStream outputStream)
          Copie les attributs de Stratégo nécessaires à une sauvegarde dans une flux de sortie passé
 
Methods inherited from class javax.microedition.midlet.MIDlet
checkPermission, getAppProperty, notifyDestroyed, notifyPaused, platformRequest, resumeRequest
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

COLOR_BLUE

public static final java.lang.String COLOR_BLUE
constante permettant de définir la couleur rouge

See Also:
Constant Field Values

COLOR_RED

public static final java.lang.String COLOR_RED
constante permettant de définir la couleur rouge

See Also:
Constant Field Values

caseOrigine

private Case caseOrigine

caseArrivee

private Case caseArrivee

dernierCoup

private Case dernierCoup

joueurEnCours

private Joueur joueurEnCours

joueurSpectateur

private Joueur joueurSpectateur

joueurIA

private IA joueurIA

display

private javax.microedition.lcdui.Display display

langueChoisie

private Langue langueChoisie

sonActif

private boolean sonActif

caseSelectionnable

private boolean caseSelectionnable

partieFinie

private boolean partieFinie

serveur

private StrategoServer serveur

client

private StrategoClient client

MODE_1_JOUEUR

public static final int MODE_1_JOUEUR
constante permettant de définir le mode 1 joueur

See Also:
Constant Field Values

MODE_2_JOUEURS

public static final int MODE_2_JOUEURS
constante permettant de définir le mode 2 joueurs

See Also:
Constant Field Values

modeDeJeu

private int modeDeJeu

plateauDeJeu

private Plateau plateauDeJeu

pionGagnant

private Pion pionGagnant

pionPerdant

private Pion pionPerdant

egalite

private boolean egalite

fenetreDeJeu

private Fenetre fenetreDeJeu

menuPrincipal

private MenuPrincipal menuPrincipal

sauvegarde

private Sauvegarde sauvegarde

thread

private java.lang.Thread thread

pionsPlaces

private boolean pionsPlaces
Constructor Detail

Stratego

public Stratego()
Constructeur

Method Detail

initialiser

public void initialiser()
Réinitialise l'instance de Stratego


fermerFlux

public void fermerFlux()
Ferme les flux ouverts si le bluetooth est activé.


destroyApp

public void destroyApp(boolean arg0)
Arrète l'application

Specified by:
destroyApp in class javax.microedition.midlet.MIDlet

notifierAdversaire

public void notifierAdversaire()
Prévient l'adversaire que l'on a quitté (mode 2 joueurs seulement)


pauseApp

public void pauseApp()
Met l'application en pause

Specified by:
pauseApp in class javax.microedition.midlet.MIDlet

startApp

public void startApp()
              throws javax.microedition.midlet.MIDletStateChangeException
Démarre l'application affichant le menu principal

Specified by:
startApp in class javax.microedition.midlet.MIDlet
Throws:
javax.microedition.midlet.MIDletStateChangeException

menuPrincipal

public void menuPrincipal()
Affiche le menu Principal


nouvellePartie

public void nouvellePartie()
Lance une nouvelle partie


creerPartieSolo

public void creerPartieSolo(java.lang.String couleurChoisie)
Crée une partie en mode 1 joueur

Parameters:
couleurChoisie - couleur choisie par le joueur humain

creerPartieMultiJoueurs

public void creerPartieMultiJoueurs()
Crée une partie en mode multijoueurs


gestionCombat

private void gestionCombat()
Gère les combats entre deux pions


partieGagnee

public void partieGagnee(java.lang.String couleurGagnant)
Cette méthode est appelée si un joueur gagne

Parameters:
couleurGagnant - couleur du joueur gagnant

gestionDeplacementPion

private void gestionDeplacementPion()
Gère le déplacement d'un pion sur une autre case.


verifierDeplacement

public void verifierDeplacement(Case caseSelectionnee)
Lors de la selection d'une case, verifier qu'elle est valide : les cases doivent être des cases terrain pour la caseOrigine : elle doit contenir un pion deplacable de la couleur du joueurEnCours pour la caseArrivee : elle doit être vide ou contenir un pion. si le pion contenu par cette case est de la couleur du joueurEnCours, caseOrigine prend la valeur de la case selectionnee

Parameters:
caseSelectionnee - la case sélectionnée par le joueur

sauvegarderPartie

public void sauvegarderPartie(int indice)
Sauvegarde une partie sur la sauvegarde numéro indice

Parameters:
indice - numéro de la sauvegarde

chargerUnePartie

public void chargerUnePartie(int indice)
Charge une partie à partir de la sauvegarde numéro indice

Parameters:
indice - numéro de la sauvegarde

jouerCoup

public void jouerCoup()
Stratego connaît deux instances de joueurs : celui qui joue celui qui attend que le premier joue Ces deux joueurs sont inversés à chaque coup joué


inverserJoueurs

public void inverserJoueurs()
Inverse le joueur en cours et le joueur spectateur


write

public void write(java.io.DataOutputStream outputStream)
Copie les attributs de Stratégo nécessaires à une sauvegarde dans une flux de sortie passé

Parameters:
outputStream - le flux de sortie

read

public void read(java.io.DataInputStream inputStream)
Lit un Stratego et récupère tous ses attributs à partir d'un flux d'entrée

Parameters:
inputStream - le flux d'entrée

getCaseOrigine

public Case getCaseOrigine()

getCaseArrivee

public Case getCaseArrivee()

getDernierCoup

public Case getDernierCoup()

getLangueChoisie

public Langue getLangueChoisie()

getJoueurEnCours

public Joueur getJoueurEnCours()

getModeDeJeu

public int getModeDeJeu()

isSonActif

public boolean isSonActif()

isPartieFinie

public boolean isPartieFinie()

setCaseOrigine

public void setCaseOrigine(Case caseOrigine)

setCaseArrivee

public void setCaseArrivee(Case caseArrivee)

getJoueurSpectateur

public Joueur getJoueurSpectateur()

setJoueurSpectateur

public void setJoueurSpectateur(Joueur unJoueur)

setJoueurEnCours

public void setJoueurEnCours(Joueur unJoueur)

setLangueChoisie

public void setLangueChoisie(Langue langue)

setModeDeJeu

public void setModeDeJeu(int mode)

setSonActif

public void setSonActif(boolean actif)

getJoueurIA

public IA getJoueurIA()

setJoueurIA

public void setJoueurIA(IA joueurIA)

getPlateauDeJeu

public Plateau getPlateauDeJeu()

setPlateauDeJeu

public void setPlateauDeJeu(Plateau plateau)

getPionGagnant

public Pion getPionGagnant()

getPionPerdant

public Pion getPionPerdant()

isEgalite

public boolean isEgalite()

setPionGagnant

public void setPionGagnant(Pion pionGagnant)

setPionPerdant

public void setPionPerdant(Pion pionPerdant)

setEgalite

public void setEgalite(boolean egalite)

isCaseSelectionnable

public boolean isCaseSelectionnable()

getDisplay

public javax.microedition.lcdui.Display getDisplay()

getServeur

public StrategoServer getServeur()

setServeur

public void setServeur(StrategoServer serveur)

getClient

public StrategoClient getClient()

setClient

public void setClient(StrategoClient client)

getFenetreDeJeu

public Fenetre getFenetreDeJeu()

isPionsPlaces

public boolean isPionsPlaces()

setPionsPlaces

public void setPionsPlaces(boolean pionsPlaces)