ajout du score et nombre de lignes supprimés dans la vue + vue gameover
This commit is contained in:
@@ -16,6 +16,9 @@ public class Grille extends Observable { // TODO: ?? implements Runnable {
|
||||
private int pieceCouranteY;
|
||||
private boolean enPause = false;
|
||||
|
||||
private int score = 0;
|
||||
private int nbLignesSupprimees = 0;
|
||||
|
||||
public Grille(int nbLignes, int nbColonnes) {
|
||||
this.nbLignes = nbLignes;
|
||||
this.nbColonnes = nbColonnes;
|
||||
@@ -249,6 +252,8 @@ public class Grille extends Observable { // TODO: ?? implements Runnable {
|
||||
// }
|
||||
|
||||
public void verifierEtSupprimerLignesSiBesoin() {
|
||||
int tmpNbLignesSupprimees = 0;
|
||||
System.out.println("Debut uppression d'une ligne......");
|
||||
for (int i = nbLignes - 1; i >= 0; i--) {
|
||||
boolean ligneSupprimable = true;
|
||||
|
||||
@@ -261,9 +266,28 @@ public class Grille extends Observable { // TODO: ?? implements Runnable {
|
||||
|
||||
if (ligneSupprimable) {
|
||||
supprimerLigne(i);
|
||||
nbLignesSupprimees += 1;
|
||||
i++;
|
||||
tmpNbLignesSupprimees++;
|
||||
}
|
||||
}
|
||||
System.out.println(tmpNbLignesSupprimees+ " Lignes supprimées");
|
||||
switch (tmpNbLignesSupprimees) {
|
||||
case 1:
|
||||
score += 100;
|
||||
break;
|
||||
case 2:
|
||||
score += 300;
|
||||
break;
|
||||
case 3:
|
||||
score += 500;
|
||||
break;
|
||||
case 4:
|
||||
score += 800;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// // TODO : EUHHHHHHHHHH JE CROIS PAS que ça marche comme ça c'est pas en mode
|
||||
@@ -322,4 +346,12 @@ public class Grille extends Observable { // TODO: ?? implements Runnable {
|
||||
this.setCase(i, j, false);
|
||||
}
|
||||
}
|
||||
|
||||
public int getScore(){
|
||||
return score;
|
||||
}
|
||||
|
||||
public int getNbLignesSupprimees() {
|
||||
return nbLignesSupprimees;
|
||||
}
|
||||
}
|
||||
@@ -11,6 +11,8 @@ import org.Models.Pieces.PieceO;
|
||||
import org.Models.Pieces.PieceS;
|
||||
import org.Models.Pieces.PieceT;
|
||||
import org.Models.Pieces.PieceZ;
|
||||
import org.Views.VueGameOver;
|
||||
import org.Views.VueTetris;
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
public class Jeu extends Observable implements Runnable {
|
||||
@@ -40,7 +42,7 @@ public class Jeu extends Observable implements Runnable {
|
||||
|
||||
private PieceCourante getNouvellePiece() {
|
||||
Random random = new Random();
|
||||
int randomiiii = random.nextInt(6);
|
||||
int randomiiii = random.nextInt(7);
|
||||
System.err.println("randomiiiii : " + randomiiii);
|
||||
|
||||
PieceCourante nouvellePiece;
|
||||
@@ -100,6 +102,9 @@ public class Jeu extends Observable implements Runnable {
|
||||
public boolean estFinPartie() {
|
||||
for (Point caseColoree : this.grille.motifPieceCouranteColoriee()) {
|
||||
if (this.grille.getCase(caseColoree.y, caseColoree.x)) {
|
||||
new VueGameOver(grille.getScore(),e -> System.exit(0),e->{
|
||||
System.out.println("Début d'une nouvelle partie");
|
||||
});
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,13 +26,13 @@ public class VueBandeauControle extends JPanel implements Observer {
|
||||
// setPreferredSize();
|
||||
|
||||
// SCORE
|
||||
scoreLabel = new JLabel("SCORE : 0");
|
||||
scoreLabel = new JLabel("SCORE : " + jeu.getGrille().getScore());
|
||||
scoreLabel.setForeground(Color.white);
|
||||
scoreLabel.setFont(new Font("Arial", Font.PLAIN, 16));
|
||||
scoreLabel.setAlignmentX(Component.CENTER_ALIGNMENT);
|
||||
|
||||
// NB LIGNE
|
||||
nbLigneLabel = new JLabel("LIGNES : 0");
|
||||
nbLigneLabel = new JLabel("LIGNES : "+ jeu.getGrille().getNbLignesSupprimees());
|
||||
nbLigneLabel.setForeground(Color.white);
|
||||
nbLigneLabel.setFont(new Font("Arial", Font.PLAIN, 16));
|
||||
nbLigneLabel.setAlignmentX(Component.CENTER_ALIGNMENT);
|
||||
@@ -133,8 +133,9 @@ public class VueBandeauControle extends JPanel implements Observer {
|
||||
public void update(Observable o, Object arg) {
|
||||
if (o instanceof Jeu) {
|
||||
afficherPieceSuivante(jeu.getPieceSuivante());
|
||||
|
||||
// TODO : setScore ??
|
||||
setScore(jeu.getGrille().getScore());
|
||||
nbLigneLabel.setText("LIGNES : " + jeu.getGrille().getNbLignesSupprimees());
|
||||
scoreLabel.setText("SCORE : " + jeu.getGrille().getScore());
|
||||
}
|
||||
}
|
||||
}
|
||||
41
app/src/main/java/org/Views/VueGameOver.java
Normal file
41
app/src/main/java/org/Views/VueGameOver.java
Normal file
@@ -0,0 +1,41 @@
|
||||
package org.Views;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
import java.awt.event.ActionListener;
|
||||
|
||||
public class VueGameOver extends JFrame {
|
||||
private JButton quitterButton;
|
||||
private JButton rejouerButton;
|
||||
|
||||
public VueGameOver(int score, ActionListener quitterListener, ActionListener rejouerListener) {
|
||||
setTitle("FIN DE PARTIE");
|
||||
setSize(400,400);
|
||||
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||
setLocationRelativeTo(null);
|
||||
//Fenetre de fin de partie
|
||||
JPanel panel = new JPanel();
|
||||
panel.setLayout(new BorderLayout());
|
||||
//Texte de fin de partie
|
||||
JLabel messageFin = new JLabel("GAME OVER !", SwingConstants.CENTER);
|
||||
messageFin.setFont(new Font("Arial", Font.BOLD, 32));
|
||||
panel.add(messageFin, BorderLayout.NORTH);
|
||||
//Texte de score
|
||||
JLabel messageScore = new JLabel("Votre score : " + score, SwingConstants.CENTER);
|
||||
messageScore.setFont(new Font("Arial", Font.PLAIN, 24));
|
||||
panel.add(messageScore, BorderLayout.CENTER);
|
||||
//Boutons
|
||||
JPanel buttonPanel = new JPanel();
|
||||
quitterButton = new JButton("Quitter");
|
||||
rejouerButton = new JButton("Rejouer");
|
||||
|
||||
//mise en forme boutons
|
||||
quitterButton.addActionListener(quitterListener);
|
||||
rejouerButton.addActionListener(rejouerListener);
|
||||
buttonPanel.add(quitterButton);
|
||||
buttonPanel.add(rejouerButton);
|
||||
panel.add(buttonPanel, BorderLayout.SOUTH);
|
||||
setContentPane(panel);
|
||||
setVisible(true);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user