fix: restart game with ordonnanceur removal

This commit is contained in:
2025-05-22 09:51:38 +02:00
parent 8888b6dfb3
commit 33b5683a59

View File

@@ -29,16 +29,13 @@ public class Jeu extends Observable implements Runnable {
public boolean jeuEnCours = true; public boolean jeuEnCours = true;
public Jeu(Grille grille, Musique musique) { public Jeu(Grille grille, Musique musique) {
this.grille = grille; this.grille = grille;
this.musique = musique; this.musique = musique;
this.musique = musique; this.musique = musique;
this.grille.setPieceCourante(getNouvellePiece()); this.grille.setPieceCourante(getNouvellePiece());
this.pieceSuivante = getNouvellePiece(); this.pieceSuivante = getNouvellePiece();
this.ordonnanceur = new Ordonnanceur(this, 1000); this.ordonnanceur = new Ordonnanceur(this, 1000);
@@ -48,38 +45,36 @@ public class Jeu extends Observable implements Runnable {
private PieceCourante getNouvellePiece() { private PieceCourante getNouvellePiece() {
Random random = new Random(); Random random = new Random();
int randomiiii = random.nextInt(7); int randomiiii = random.nextInt(7);
PieceCourante nouvellePiece; PieceCourante nouvellePiece;
switch (randomiiii) { switch (randomiiii) {
case 0: case 0:
nouvellePiece = new PieceI(); nouvellePiece = new PieceI();
break; break;
case 1: case 1:
nouvellePiece = new PieceL(); nouvellePiece = new PieceL();
break; break;
case 2: case 2:
nouvellePiece = new PieceJ(); nouvellePiece = new PieceJ();
break; break;
case 3: case 3:
nouvellePiece = new PieceO(); nouvellePiece = new PieceO();
break; break;
case 4: case 4:
nouvellePiece = new PieceS(); nouvellePiece = new PieceS();
break; break;
case 5: case 5:
nouvellePiece = new PieceT(); nouvellePiece = new PieceT();
break; break;
case 6: case 6:
nouvellePiece = new PieceZ(); nouvellePiece = new PieceZ();
break; break;
default: default:
nouvellePiece = new PieceL(); nouvellePiece = new PieceL();
@@ -129,13 +124,25 @@ public class Jeu extends Observable implements Runnable {
notifyObservers(); notifyObservers();
} }
/**
* Réinitialise tous les paramètres de la partie pour relancer le jeu.
*/
public void reinitialiserPartie() { public void reinitialiserPartie() {
if (ordonnanceur != null) {
ordonnanceur.stopOrdonnanceur();
try {
Thread.sleep(100);
} catch (InterruptedException e) {
}
}
this.grille.initGrille(); this.grille.initGrille();
this.grille.setPieceCourante(getNouvellePiece()); this.grille.setPieceCourante(getNouvellePiece());
this.grille.setScore(0); this.grille.setScore(0);
this.grille.setNbLignesSupprimees(0); this.grille.setNbLignesSupprimees(0);
this.pieceSuivante = getNouvellePiece(); this.pieceSuivante = getNouvellePiece();
this.jeuEnCours = true; this.jeuEnCours = true;
this.ordonnanceur = new Ordonnanceur(this, 1000); this.ordonnanceur = new Ordonnanceur(this, 1000);
this.ordonnanceur.start(); this.ordonnanceur.start();
setChanged(); setChanged();