Class Moteur

java.lang.Object
  |
  +--Moteur
Direct Known Subclasses:
Moteur_c, Moteur_e, Moteur_hm, Moteur_s

public abstract class Moteur
extends java.lang.Object
implements MoteurProto, Constantes

classe Moteur contenant les methodes communes a tous les moteurs

Version:
3.0
Author:
Gratien Xavier / Lurois Frederic

Field Summary
protected  boolean _fin
          Booleen indiquant la fin du jeu
protected  InterUtil _interUtil
          l'interUtil actuel
protected  int[] _plateau
          Plateau du jeu Awele
protected  int[] _plateauSimu
          Plateau de jeu utilise pour faire des simulations
protected  int[] _reserves
           
protected  int[] _reservesSimu
           
protected  java.lang.Thread _thread
          le thread qui effectue la distribution
protected  int _tour
          Booleen indiquant a qui c'est le tour de jouer
 
Constructor Summary
Moteur(InterUtil interUtil)
          constructeur du moteur
 
Method Summary
 void afficherDistribution(int[] plateau, int[] reserves, int depart)
           
 void capture(int[] plateau, int[] reserves, int fin, int nb_min_graine, int nb_max_graine)
          Procedure qui capture les graines s'il c'est possible
 void charge(java.lang.String fichier)
          Procedure qui charge une partie sauvegardee
 void copiePlateau(int[] initial, int[] copie)
          copie de plateau
 void copieReserves(int[] initial, int[] copie)
          copie des reserves
 int distribuer(int[] plateau, int[] reserves, int depart)
          Fonction qui repartie les graines a partir de la case t
 boolean est_vide(int[] plateau, int joueur)
          test si le camp adverse est vide
 boolean famine(int depart)
          Fonction qui teste si le coup choisit cree une famine elle positionne le booleen _fin a true si tous les coups possible restant cree famine
 void initialise()
          initialise le moteur
abstract  boolean joue(int t)
          fonction qui joue le coup t
 boolean legal(int t)
          Fonction qui test si un coup est legal
 void partieTerminee()
          determine qui a gagne et l'affiche
 void sauve(java.lang.String fichier)
          Procedure qui sauve la partie en cours
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, toString, wait, wait, wait
 

Field Detail

_plateau

protected int[] _plateau
Plateau du jeu Awele

_reserves

protected int[] _reserves

_plateauSimu

protected int[] _plateauSimu
Plateau de jeu utilise pour faire des simulations

_reservesSimu

protected int[] _reservesSimu

_tour

protected int _tour
Booleen indiquant a qui c'est le tour de jouer

_fin

protected boolean _fin
Booleen indiquant la fin du jeu

_interUtil

protected InterUtil _interUtil
l'interUtil actuel

_thread

protected java.lang.Thread _thread
le thread qui effectue la distribution
Constructor Detail

Moteur

public Moteur(InterUtil interUtil)
constructeur du moteur
Parameters:
interUtil - l'interface graphique en cours
Method Detail

joue

public abstract boolean joue(int t)
fonction qui joue le coup t
Specified by:
joue in interface MoteurProto
Parameters:
t - le trou a jouer

initialise

public void initialise()
initialise le moteur
Specified by:
initialise in interface MoteurProto

legal

public boolean legal(int t)
Fonction qui test si un coup est legal
Specified by:
legal in interface MoteurProto
Parameters:
t - le numero de la case a jouer
Returns:
vrai si le coup est valide, faux sinon

famine

public boolean famine(int depart)
Fonction qui teste si le coup choisit cree une famine elle positionne le booleen _fin a true si tous les coups possible restant cree famine
Parameters:
depart - l'indice de la case a jouer
Returns:
vrai si le coup cree une famine, faux sinon

afficherDistribution

public void afficherDistribution(int[] plateau,
                                 int[] reserves,
                                 int depart)

distribuer

public int distribuer(int[] plateau,
                      int[] reserves,
                      int depart)
Fonction qui repartie les graines a partir de la case t
Parameters:
p - le plateau sur lequel est effectue la distribution
depart - l'indice de la case de depart de la distribution
Returns:
l'indice de la case de fin

capture

public void capture(int[] plateau,
                    int[] reserves,
                    int fin,
                    int nb_min_graine,
                    int nb_max_graine)
Procedure qui capture les graines s'il c'est possible
Parameters:
p - le plateau sur lequel on effectue la capture
fin - l'indice de la case a capturer
nb_min_graine - le nombre mini de graines devant etre dans le trou pour pouvoir effectuer la capture
nb_max_graine - le nombre max de graines devant etre dans le trou pour pouvoir effectuer la capture

partieTerminee

public void partieTerminee()
determine qui a gagne et l'affiche

est_vide

public boolean est_vide(int[] plateau,
                        int joueur)
test si le camp adverse est vide

copiePlateau

public void copiePlateau(int[] initial,
                         int[] copie)
copie de plateau

copieReserves

public void copieReserves(int[] initial,
                          int[] copie)
copie des reserves

sauve

public void sauve(java.lang.String fichier)
           throws ErreurFichierException
Procedure qui sauve la partie en cours
Specified by:
sauve in interface MoteurProto
Parameters:
fichier - le nom du fichier a sauver
Throws:
ErreurFichierException - s'il y a une erreur lors de la sauvegarde

charge

public void charge(java.lang.String fichier)
            throws MauvaisFormatException,
                   ErreurFichierException
Procedure qui charge une partie sauvegardee
Specified by:
charge in interface MoteurProto
Parameters:
fichier - le nom du fichier a charger
Throws:
MauvaisFormatException - si le format du fichier n'est pas valide
ErreurFichierException - s'il y a une erreur a l'ouverture du fichier