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_main.xml b/src/main/res/layout/activity_main.xml
index 0ba5036..642f8e8 100644
--- a/src/main/res/layout/activity_main.xml
+++ b/src/main/res/layout/activity_main.xml
@@ -5,6 +5,8 @@
android:orientation="vertical"
android:padding="16dp">
+
+
+
+
+
+
+
-
+ android:layout_height="wrap_content"
+ android:scaleX="1.5"
+ android:scaleY="1.5"
+ android:layout_marginEnd="16dp"
+ android:minWidth="48dp"
+ android:minHeight="48dp"/>
@@ -48,11 +53,26 @@
android:text="Hard mode (verrous)"
android:textSize="18sp"/>
-
+
-
\ No newline at end of file
+
+
+
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"/>
+
+
\ No newline at end of file
diff --git a/src/main/res/xml/preferences.xml b/src/main/res/xml/preferences.xml
new file mode 100644
index 0000000..624ed13
--- /dev/null
+++ b/src/main/res/xml/preferences.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file