Files
SAE41_2025/src/main/java/sae/chuzzle/MainActivity.java
T

114 lines
3.2 KiB
Java
Raw Normal View History

2026-03-11 15:52:10 +01:00
package sae.chuzzle;
import android.app.Activity;
2026-03-19 10:07:24 +01:00
import android.content.Intent;
2026-03-11 15:52:10 +01:00
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.RadioButton;
import android.widget.Spinner;
import android.widget.TextView;
public class MainActivity extends Activity implements View.OnClickListener {
2026-03-19 13:01:02 +01:00
2026-03-19 10:07:24 +01:00
2026-03-11 15:52:10 +01:00
private Controleur controleur;
private Button btnJouer;
2026-03-19 10:07:24 +01:00
private Button btnMenu;
2026-03-19 13:01:02 +01:00
2026-03-19 10:07:24 +01:00
private boolean hardMode;
private EtatJeu etatJeu;
2026-03-11 15:52:10 +01:00
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// --- Modèle ---
2026-03-19 10:07:24 +01:00
long graine = getIntent().getLongExtra("graine", System.currentTimeMillis());
hardMode = getSharedPreferences("chuzzle_prefs", MODE_PRIVATE)
2026-03-11 15:52:10 +01:00
.getBoolean("hard_mode", false);
boolean daltonien = getSharedPreferences("chuzzle_prefs", MODE_PRIVATE)
.getBoolean("daltonien", false);
2026-03-19 10:07:24 +01:00
etatJeu = new EtatJeu(graine, hardMode);
// --- Restauration si retour de pause ---
if (savedInstanceState != null) {
etatJeu.restaurerEtat(savedInstanceState);
}
2026-03-11 15:52:10 +01:00
// --- Vue ---
VueGrille vueGrille = findViewById(R.id.vueGrille);
2026-03-23 12:13:27 +01:00
2026-03-11 15:52:10 +01:00
2026-03-19 13:01:02 +01:00
2026-03-19 10:07:24 +01:00
2026-03-11 15:52:10 +01:00
// --- Controleur ---
btnJouer = findViewById(R.id.btnJouer);
btnJouer.setOnClickListener(this);
2026-03-19 10:07:24 +01:00
btnMenu = findViewById(R.id.btnMenu);
btnMenu.setOnClickListener(this);
2026-03-11 15:52:10 +01:00
controleur = new Controleur(
this,
etatJeu,
vueGrille,
2026-03-19 10:07:24 +01:00
graine,
(TextView) findViewById(R.id.tvScore),
(TextView) findViewById(R.id.tvCoups),
2026-03-11 15:52:10 +01:00
(RadioButton) findViewById(R.id.rbLigne),
(RadioButton) findViewById(R.id.rbDroite),
2026-03-19 10:07:24 +01:00
(Spinner) findViewById(R.id.spinnerIndex),
2026-03-19 13:01:02 +01:00
btnJouer,
hardMode
2026-03-11 15:52:10 +01:00
);
2026-03-19 10:07:24 +01:00
2026-03-23 11:54:49 +01:00
// --- INITIALISATION DE L'OBJECTIF ---
// Crucial pour que le texte "Objectif : ..." soit remplacé par le vrai énoncé
controleur.initialiserObjectif(savedInstanceState);
2026-03-19 10:07:24 +01:00
// --- Gestion tactile ---
GestionnaireTactile gestionnaireTactile =
new GestionnaireTactile(vueGrille, etatJeu, controleur);
vueGrille.setOnTouchListener(gestionnaireTactile);
}
// -
// CYCLE DE VIE
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
if (etatJeu != null) {
etatJeu.sauvegarderEtat(outState);
}
2026-03-19 13:01:02 +01:00
if (controleur != null) {
controleur.sauvegarderEtat(outState);
2026-03-19 10:07:24 +01:00
}
}
@Override
protected void onDestroy() {
super.onDestroy();
2026-03-19 13:01:02 +01:00
2026-03-11 15:52:10 +01:00
}
@Override
public void onClick(View v) {
if (v == btnJouer) {
controleur.gererCoupJoueur();
}
2026-03-19 10:07:24 +01:00
if (v == btnMenu) {
2026-03-19 13:01:02 +01:00
etatJeu.forcerFinDePartie();
2026-03-19 10:07:24 +01:00
Intent intent = new Intent(this, MenuActivity.class);
startActivity(intent);
}
2026-03-11 15:52:10 +01:00
}
2026-03-19 10:07:24 +01:00
}