Correction bug - Détection fin de jeu
This commit is contained in:
@@ -2,6 +2,7 @@ package sae.chuzzle;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.widget.ArrayAdapter;
|
||||
import android.widget.Button;
|
||||
import android.widget.RadioButton;
|
||||
@@ -9,6 +10,8 @@ import android.widget.Spinner;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class Controleur {
|
||||
|
||||
private final Activity activite;
|
||||
@@ -23,6 +26,9 @@ public class Controleur {
|
||||
private final Spinner spinnerIndex;
|
||||
private final Button btnJouer;
|
||||
|
||||
// Hard Mode
|
||||
private final boolean hardMode;
|
||||
|
||||
// -
|
||||
// CONSTRUCTEUR
|
||||
|
||||
@@ -31,7 +37,8 @@ public class Controleur {
|
||||
long graine,
|
||||
TextView tvScore, TextView tvCoups,
|
||||
RadioButton rbLigne, RadioButton rbDroite,
|
||||
Spinner spinnerIndex, Button btnJouer) {
|
||||
Spinner spinnerIndex, Button btnJouer,
|
||||
boolean hardMode) {
|
||||
|
||||
this.activite = activite;
|
||||
this.etatJeu = etatJeu;
|
||||
@@ -43,6 +50,7 @@ public class Controleur {
|
||||
this.rbDroite = rbDroite;
|
||||
this.spinnerIndex = spinnerIndex;
|
||||
this.btnJouer = btnJouer;
|
||||
this.hardMode = hardMode;
|
||||
|
||||
initialiserSpinner();
|
||||
rafraichirAffichage();
|
||||
@@ -82,12 +90,10 @@ public class Controleur {
|
||||
|
||||
if (!accepte) {
|
||||
Toast.makeText(activite, "Coup invalide !", Toast.LENGTH_SHORT).show();
|
||||
return;
|
||||
}
|
||||
|
||||
if(accepte){
|
||||
Toast.makeText(activite, "Coup valide !", Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
|
||||
Toast.makeText(activite, "Coup valide !", Toast.LENGTH_SHORT).show();
|
||||
rafraichirAffichage();
|
||||
verifierFinDePartie();
|
||||
}
|
||||
@@ -115,9 +121,13 @@ public class Controleur {
|
||||
tvCoups.setText("Coups : " + etatJeu.obtenirNbCoups());
|
||||
vueGrille.definirGrille(etatJeu.obtenirGrille());
|
||||
vueGrille.definirVerrous(etatJeu.obtenirVerrous());
|
||||
|
||||
|
||||
if (etatJeu.estTerminee()) {
|
||||
btnJouer.setEnabled(false);
|
||||
}
|
||||
}
|
||||
|
||||
public void sauvegarderEtat(Bundle out) {
|
||||
// Nettoyé de la logique d'objectifs
|
||||
}
|
||||
}
|
||||
@@ -527,6 +527,10 @@ public class EtatJeu {
|
||||
public boolean aUnCoupValide() {
|
||||
// Teste tous les décalages possibles (1 à N-1) pour les lignes
|
||||
for (int i = 0; i < NB_LIGNES; i++) {
|
||||
|
||||
// AJOUT : Si la ligne est bloquée par un verrou, on ne peut pas la bouger
|
||||
if (estBloque(true, i)) continue;
|
||||
|
||||
for (int s = 1; s < NB_COLONNES; s++) {
|
||||
if (coupCreeSerie(true, i, s)) {
|
||||
return true;
|
||||
@@ -536,6 +540,10 @@ public class EtatJeu {
|
||||
|
||||
// Teste tous les décalages possibles (1 à N-1) pour les colonnes
|
||||
for (int j = 0; j < NB_COLONNES; j++) {
|
||||
|
||||
// AJOUT : Si la colonne est bloquée par un verrou, on ne peut pas la bouger
|
||||
if (estBloque(false, j)) continue;
|
||||
|
||||
for (int s = 1; s < NB_LIGNES; s++) {
|
||||
if (coupCreeSerie(false, j, s)) {
|
||||
return true;
|
||||
@@ -585,4 +593,6 @@ public class EtatJeu {
|
||||
System.arraycopy(sauvegarde[l], 0, grille[l], 0, NB_COLONNES);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -18,8 +18,8 @@ public class MenuActivity extends Activity implements View.OnClickListener {
|
||||
setContentView(R.layout.activity_menu);
|
||||
|
||||
btnNouvellePartie = findViewById(R.id.btnNouvellePartie);
|
||||
btnPartieGraine = findViewById(R.id.btnPartieGraine);
|
||||
btnOptions = findViewById(R.id.btnOptions);
|
||||
btnPartieGraine = findViewById(R.id.btnPartieGraine);
|
||||
btnOptions = findViewById(R.id.btnOptions);
|
||||
|
||||
btnNouvellePartie.setOnClickListener(this);
|
||||
btnPartieGraine.setOnClickListener(this);
|
||||
|
||||
Reference in New Issue
Block a user