mise à plat
This commit is contained in:
@@ -73,7 +73,7 @@ public class Controleur {
|
||||
* Centralise la logique pour être appelé par le bouton ET par le tactile.
|
||||
*/
|
||||
public void gererFinDeCoup() {
|
||||
// --- Logique Hard Mode ---
|
||||
// --- Logique Hard Mode
|
||||
if (hardMode && objectifActuel != null) {
|
||||
// 1. Décrémenter les coups de l'objectif
|
||||
objectifActuel.decrementerCoups();
|
||||
@@ -84,12 +84,17 @@ public class Controleur {
|
||||
|
||||
// 3. Vérifier réussite ou échec
|
||||
if (objectifActuel.estReussi()) {
|
||||
Toast.makeText(activite, "Objectif réussi !", Toast.LENGTH_SHORT).show();
|
||||
|
||||
gestionnaireObjectifs.incrementerReussites();
|
||||
objectifActuel = gestionnaireObjectifs.genererObjectif();
|
||||
} else if (objectifActuel.estEchoue()) {
|
||||
// Plus de coups disponibles et objectif non réussi → fin de partie immédiate
|
||||
Toast.makeText(activite, "Objectif échoué !",
|
||||
Toast.LENGTH_SHORT
|
||||
).show();
|
||||
|
||||
etatJeu.forcerFinDePartie();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -21,10 +21,6 @@ public class EtatJeu {
|
||||
|
||||
private final int[] seriesParCouleurDernierCoup = new int[Plateau.NB_TYPES];
|
||||
|
||||
public EtatJeu() {
|
||||
this(System.currentTimeMillis(), false);
|
||||
}
|
||||
|
||||
public EtatJeu(long graine, boolean hardMode) {
|
||||
this.aleatoire = new Random(graine);
|
||||
this.hardMode = hardMode;
|
||||
@@ -120,14 +116,14 @@ public class EtatJeu {
|
||||
return (int) (baseTotal * (1.0 + (nbSeriesTotal - 1) * 0.5));
|
||||
}
|
||||
|
||||
// --- Aide à la résolution ---
|
||||
// --- Aide à la résolution
|
||||
|
||||
/**
|
||||
* Parcourt les séries détectées, calcule les points de base et compte le nombre
|
||||
* de séries.
|
||||
* Vérifie la couleur des cellules pour délimiter correctement les séries.
|
||||
*
|
||||
* @return int[2] : [0] = points de base, [1] = nombre de séries
|
||||
* int[2] : [0] = points de base, [1] = nombre de séries
|
||||
*/
|
||||
private int[] traiterSeries(List<int[]> series) {
|
||||
boolean[][] masque = creerMasque(series);
|
||||
@@ -249,10 +245,10 @@ public class EtatJeu {
|
||||
boolean[] v = new boolean[36];
|
||||
int[][] grid = plateau.getGrille();
|
||||
boolean[][] lk = plateau.getVerrous();
|
||||
for (int i = 0; i < 6; i++) {
|
||||
for (int j = 0; j < 6; j++) {
|
||||
g[i * 6 + j] = grid[i][j];
|
||||
v[i * 6 + j] = lk[i][j];
|
||||
for (int i = 0; i < Plateau.NB_LIGNES; i++) {
|
||||
for (int j = 0; j < Plateau.NB_COLONNES; j++) {
|
||||
g[i * Plateau.NB_LIGNES + j] = grid[i][j];
|
||||
v[i * Plateau.NB_LIGNES + j] = lk[i][j];
|
||||
}
|
||||
}
|
||||
b.putIntArray("grille", g);
|
||||
@@ -270,10 +266,10 @@ public class EtatJeu {
|
||||
boolean[] v = b.getBooleanArray("verrous");
|
||||
int[][] grid = plateau.getGrille();
|
||||
boolean[][] lk = plateau.getVerrous();
|
||||
for (int i = 0; i < 6; i++) {
|
||||
for (int j = 0; j < 6; j++) {
|
||||
grid[i][j] = g[i * 6 + j];
|
||||
lk[i][j] = v[i * 6 + j];
|
||||
for (int i = 0; i < Plateau.NB_LIGNES; i++) {
|
||||
for (int j = 0; j < Plateau.NB_COLONNES; j++) {
|
||||
grid[i][j] = g[i * Plateau.NB_LIGNES + j];
|
||||
lk[i][j] = v[i * Plateau.NB_LIGNES + j];
|
||||
}
|
||||
}
|
||||
score = b.getInt("score");
|
||||
|
||||
@@ -13,6 +13,7 @@ public class GestionnaireObjectifs {
|
||||
private int nbObjectifsRealises = 0;
|
||||
|
||||
public GestionnaireObjectifs(long graine) {
|
||||
|
||||
this.random = new Random(graine);
|
||||
}
|
||||
|
||||
|
||||
@@ -23,14 +23,24 @@ public class Objectif {
|
||||
}
|
||||
|
||||
// Getters
|
||||
public int getCouleur() { return couleur; }
|
||||
public int getNbSeriesCible() { return nbSeriesCible; }
|
||||
public int getNbCoupsMax() { return nbCoupsMax; }
|
||||
public int getCouleur() {
|
||||
return couleur;
|
||||
}
|
||||
public int getNbSeriesCible() {
|
||||
|
||||
return nbSeriesCible;
|
||||
}
|
||||
public int getNbCoupsMax() {
|
||||
return nbCoupsMax;
|
||||
}
|
||||
|
||||
public int getCoupsRestants() {
|
||||
return coupsRestants;
|
||||
|
||||
}
|
||||
public int getPoids() {
|
||||
return poids;
|
||||
|
||||
}
|
||||
|
||||
public void decrementerCoups() {
|
||||
|
||||
@@ -44,9 +44,7 @@ public class SeedActivity extends Activity implements View.OnClickListener {
|
||||
String texte = etGraine.getText().toString().trim();
|
||||
|
||||
if (texte.isEmpty()) {
|
||||
Toast.makeText(
|
||||
this,
|
||||
"Veuillez entrer une graine.",
|
||||
Toast.makeText(this, "Veuillez entrer une graine.",
|
||||
Toast.LENGTH_SHORT
|
||||
).show();
|
||||
return;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
package sae.chuzzle;
|
||||
|
||||
package sae.chuzzle; // séparer le dessin de la grille et des éléments
|
||||
// et vérifie les math à la fin beleck c chelou
|
||||
import android.content.Context;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.BitmapFactory;
|
||||
@@ -22,17 +22,11 @@ public class VueGrille extends View {
|
||||
/** Symboles pour le mode daltonien, un par type. */
|
||||
private static final String[] SYMBOLES = {"●", "■", "▲", "✚", "★", "♦", "✿"};
|
||||
|
||||
|
||||
// Données métier
|
||||
|
||||
private int[][] grille = new int[NB_LIGNES][NB_COLONNES];
|
||||
private boolean[][] verrous = new boolean[NB_LIGNES][NB_COLONNES];
|
||||
|
||||
|
||||
|
||||
// État du glissement
|
||||
|
||||
|
||||
private Boolean animEstLigne = null;
|
||||
private int animIndex = 0;
|
||||
private float animDecalagePx = 0f;
|
||||
@@ -199,7 +193,7 @@ public class VueGrille extends View {
|
||||
// Dessin case principale
|
||||
dessinerRectCase(canvas, type, ligne, colonne, x1, y1, x2, y2);
|
||||
|
||||
// --- Wrap-around (réapparition de l'autre côté) ---
|
||||
// --- (réapparition de l'autre côté)
|
||||
if (offsetX != 0f) {
|
||||
float bordD = margeGauche + largeurGrille;
|
||||
float bordG = margeGauche;
|
||||
@@ -249,6 +243,7 @@ public class VueGrille extends View {
|
||||
// Adapté au daltonien
|
||||
canvas.drawText(SYMBOLES[type % NB_TYPES], cx, cy, pinceauSymbole);
|
||||
|
||||
|
||||
// Dessin de l'image de la chaine si verrouillée
|
||||
if (verrous[ligne][colonne] && imageChaine != null) {
|
||||
float size = (x2 - x1);
|
||||
|
||||
Reference in New Issue
Block a user