Class MatriceJeu

java.lang.Object
  |
  +--java.util.Observable
        |
        +--Matrice
              |
              +--MatriceJeu

public class MatriceJeu
extends Matrice
implements java.lang.Runnable

Classe principale du jeu entier. C' est elle qui represente la matrice du jeu. Cette matrice est en fait un tableau d' entiers, chaque case de ce tableau est soit vide auquel cas sa valeur est -1, soit occupée ce qui est representé par une valeur >= 1. Cette classe possède une seule pièce de jeu à la fois, quand une pièce ne peut plus étre jouée (elle touche le bas ou une autre pièce), alors, on crée une nouvelle pièce au hasard, cette dernière prenant la place de l' ancienne qui, elle est incrustée dans la matrice du jeu et perd sa nature (être une pièce de jeu). Cette classe met en jeu aussi un Thread (en implémentant Runnable) qui permet de simuler le moteur du jeu, c' est a dire faire bouger la pièce du jeu toutes les X secondes. En implementant Observable (depuis la classe mère Matrice), une multitude de classes observe celle-ci.

See Also:
CanvasPieceSuivante MonScore MalLigne

Field Summary
 Warning warning
           
 
Fields inherited from class Matrice
largeur, longueur, matrice
 
Constructor Summary
MatriceJeu(int longueur, int largeur)
          Construit un objet sans initialiser de pièce au départ
MatriceJeu(int longueur, int largeur, PieceGenerique piece)
          Construit un objet en initialisant une pièce de départ
 
Method Summary
 void ajuste(int L)
          Procédure qui décale les lignes vers le bas après un appelle réussi à deleteLigne
 void changePiece()
          Procédure qui sert à changer de pièce courante ainsi que de pièce suivante Les observateurs sont avertis de ce changement surtout CanvasPieceSuivante.
 int deleteLigne()
          Procédure qui efface toutes les lignes pleines.
 void demarrer()
          Procédure qui sert à démarrer la Thread lorsque le joueur appuie sur Nouvelle partie
static int getLignes()
           
static int getLignesAux()
           
 int getLignesTot()
           
 int getNiveau()
           
 PieceGenerique getPiece()
           
 PieceGenerique getPieceSuivante()
           
 int getScore()
           
 void initScore()
          Procédure qui sert à initialiser les différents paramètres du jeu : le score, les lignes, le niveau, la vitesse du jeu (timer) et avertit tous les observateurs.
 boolean mapObjet()
          Procédure qui permet de mettre, après avoir vérifié qu'aucune autre pièce ne se trouve déjà à cet endroit, une pièce dans la matrice du jeu, à partir de la matrice de la pièce
 void mapObjetFin()
          Procédure similaire à la précédente, sauf qu'elle ne fait aucun test.
 void pauseJeu()
          On met le jeu en pause
 PieceGenerique pieceSuivante()
          Procédure qui choisit la pièce suivante en utilisant random
 int random()
          Focntion qui génère un nombre entier aléatoire compris entre 0 et 10
 void reprendreJeu()
          Pour reprendre le jeu
 void rotation()
          Procédure qui permet de faire pivoter une pièce
 void run()
          Le moteur de jeu : c'est ici qu'on gère la Thread
static void setLignes(int nb)
          Modifie le nombre de lignes cassés sur ce coup
static void setLignesAux(int n)
          Modifie le nombre de lignes dans le niveau en cours
 void setLignesTot(int n)
          Modifie le nombre de lignes totales
 void setNiveau(int level)
          Modifie le niveau du jeu
 void setPiece(PieceGenerique p)
          Change la pièce en cours ainsi que la pièce suivante
 void setScore()
          Affecte le score quand le joueur marque des points
 void setWarning()
          Procédure qui remet le booléen finDeJeu è faux
 boolean testBas()
          Procédure qui teste le bas de la pièce
 boolean testDroite()
          Procédure qui teste la partie droite de la pièce
 boolean testGauche()
          Procédure qui teste la partie gauche de la pièce
 boolean testLigne(int l)
          Procédure qui teste si la ligne l est pleine
 boolean testRotation()
          Méthode qui teste la possibilité pour une pièce d' effectuer une rotation
 void translationBas()
          Procédure "fourre-tout" qui sert de moteur du jeu : - on essaie de faire descendre une pièce - On règle la vitesse du jeu - On modifie le score etc...
 void translationDroite()
          Procédure qui permet de faire translater une pièce vers la droite
 void translationGauche()
          Procédure qui permet de faire translater une pièce vers la gauche
 void unMap()
          Procédure inverse de mapObjet : efface la pièce de la matrice du jeu, pour la mettre ailleurs.
 
Methods inherited from class Matrice
decrisToi, getMatrice, init
 
Methods inherited from class java.util.Observable
addObserver, clearChanged, countObservers, deleteObserver, deleteObservers, hasChanged, notifyObservers, notifyObservers, setChanged
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

warning

public Warning warning
Constructor Detail

MatriceJeu

public MatriceJeu(int longueur,
                  int largeur)
Construit un objet sans initialiser de pièce au départ

MatriceJeu

public MatriceJeu(int longueur,
                  int largeur,
                  PieceGenerique piece)
Construit un objet en initialisant une pièce de départ
Method Detail

setScore

public void setScore()
Affecte le score quand le joueur marque des points

setPiece

public void setPiece(PieceGenerique p)
Change la pièce en cours ainsi que la pièce suivante

initScore

public void initScore()
Procédure qui sert à initialiser les différents paramètres du jeu : le score, les lignes, le niveau, la vitesse du jeu (timer) et avertit tous les observateurs.

mapObjet

public boolean mapObjet()
Procédure qui permet de mettre, après avoir vérifié qu'aucune autre pièce ne se trouve déjà à cet endroit, une pièce dans la matrice du jeu, à partir de la matrice de la pièce

mapObjetFin

public void mapObjetFin()
Procédure similaire à la précédente, sauf qu'elle ne fait aucun test. Elle ne sert donc que pour la dernière pièce, quand le joueur a perdu Souci ésthetique.

unMap

public void unMap()
Procédure inverse de mapObjet : efface la pièce de la matrice du jeu, pour la mettre ailleurs.
See Also:
translationBas, translationGauche, translationDroite, rotation

translationBas

public void translationBas()
Procédure "fourre-tout" qui sert de moteur du jeu : - on essaie de faire descendre une pièce - On règle la vitesse du jeu - On modifie le score etc...

translationGauche

public void translationGauche()
Procédure qui permet de faire translater une pièce vers la gauche

translationDroite

public void translationDroite()
Procédure qui permet de faire translater une pièce vers la droite

rotation

public void rotation()
Procédure qui permet de faire pivoter une pièce

run

public void run()
Le moteur de jeu : c'est ici qu'on gère la Thread
Specified by:
run in interface java.lang.Runnable

pauseJeu

public void pauseJeu()
On met le jeu en pause

reprendreJeu

public void reprendreJeu()
Pour reprendre le jeu

demarrer

public void demarrer()
Procédure qui sert à démarrer la Thread lorsque le joueur appuie sur Nouvelle partie

testDroite

public boolean testDroite()
Procédure qui teste la partie droite de la pièce
See Also:
translationDroite

testBas

public boolean testBas()
Procédure qui teste le bas de la pièce
See Also:
translationBas

testGauche

public boolean testGauche()
Procédure qui teste la partie gauche de la pièce
See Also:
translationGauche

testRotation

public boolean testRotation()
Méthode qui teste la possibilité pour une pièce d' effectuer une rotation
See Also:
rotation

testLigne

public boolean testLigne(int l)
Procédure qui teste si la ligne l est pleine
See Also:
deleteLigne

deleteLigne

public int deleteLigne()
Procédure qui efface toutes les lignes pleines. Est appelée chaque fois qu'on change de pièce.
See Also:
translationBas

ajuste

public void ajuste(int L)
Procédure qui décale les lignes vers le bas après un appelle réussi à deleteLigne
See Also:
deleteLigne

random

public int random()
Focntion qui génère un nombre entier aléatoire compris entre 0 et 10

changePiece

public void changePiece()
Procédure qui sert à changer de pièce courante ainsi que de pièce suivante Les observateurs sont avertis de ce changement surtout CanvasPieceSuivante.
See Also:
CanvasPieceSuivante

pieceSuivante

public PieceGenerique pieceSuivante()
Procédure qui choisit la pièce suivante en utilisant random

getPiece

public PieceGenerique getPiece()
Returns:
La pièce courante

getLignes

public static int getLignes()
Returns:
Le nombre de lignes cassées sur ce coup

getPieceSuivante

public PieceGenerique getPieceSuivante()
Returns:
La pièce suivante

getLignesAux

public static int getLignesAux()
Returns:
Le nombre de lignes pour le niveau en cours

getScore

public int getScore()
Returns:
Le score actuel

getNiveau

public int getNiveau()
Returns:
Le niveau actuel de jeu

getLignesTot

public int getLignesTot()
Returns:
Le nombre de lignes totales

setWarning

public void setWarning()
Procédure qui remet le booléen finDeJeu è faux

setLignes

public static void setLignes(int nb)
Modifie le nombre de lignes cassés sur ce coup

setLignesTot

public void setLignesTot(int n)
Modifie le nombre de lignes totales

setNiveau

public void setNiveau(int level)
Modifie le niveau du jeu

setLignesAux

public static void setLignesAux(int n)
Modifie le nombre de lignes dans le niveau en cours