diff --git a/src/main/AndroidManifest.xml b/src/main/AndroidManifest.xml index 7bfbbb9..34cdb93 100644 --- a/src/main/AndroidManifest.xml +++ b/src/main/AndroidManifest.xml @@ -31,6 +31,11 @@ android:name=".MainActivity" android:parentActivityName=".MenuActivity"/> + + + \ No newline at end of file diff --git a/src/main/java/sae/chuzzle/Controleur.java b/src/main/java/sae/chuzzle/Controleur.java index e912071..62d5650 100644 --- a/src/main/java/sae/chuzzle/Controleur.java +++ b/src/main/java/sae/chuzzle/Controleur.java @@ -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 + } } \ No newline at end of file diff --git a/src/main/java/sae/chuzzle/EtatJeu.java b/src/main/java/sae/chuzzle/EtatJeu.java index 031974d..4d5f670 100644 --- a/src/main/java/sae/chuzzle/EtatJeu.java +++ b/src/main/java/sae/chuzzle/EtatJeu.java @@ -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); } } + + } diff --git a/src/main/java/sae/chuzzle/MenuActivity.java b/src/main/java/sae/chuzzle/MenuActivity.java index ecc5092..a4bd5f5 100644 --- a/src/main/java/sae/chuzzle/MenuActivity.java +++ b/src/main/java/sae/chuzzle/MenuActivity.java @@ -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); diff --git a/src/main/res/layout/activity_fin_partie.xml b/src/main/res/layout/activity_fin_partie.xml new file mode 100644 index 0000000..bca6399 --- /dev/null +++ b/src/main/res/layout/activity_fin_partie.xml @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/res/layout/activity_seed.xml b/src/main/res/layout/activity_seed.xml index 5de9d67..7ac4c4a 100644 --- a/src/main/res/layout/activity_seed.xml +++ b/src/main/res/layout/activity_seed.xml @@ -27,5 +27,13 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Jouer"/> +