3 Commits

Author SHA1 Message Date
8b421b3cba michel 2025-10-08 17:37:40 +02:00
15a280ad2c conflit 2025-10-08 17:24:12 +02:00
4b7d0c7753 nul 2025-10-08 17:14:42 +02:00
4 changed files with 25 additions and 15 deletions

View File

@@ -127,4 +127,4 @@ public class Words {
}
return out;
}
}
}

View File

@@ -10,9 +10,9 @@ import java.util.List;
/**
* Interface graphique du pendu avec niveaux :
* - 1 : mots < 8 lettres
* - 2 : mots ≥ 8 lettres
* - 3 : deux mots (score + chrono cumulés)
* - facile : mots < 8 lettres
* - moyen : mots ≥ 8 lettres
* - difficile : deux mots (score + chrono cumulés)
* Boutons : Essayer / Nouvelle partie / Menu / Quitter.
* (Toutes les méthodes ≤ 50 lignes)
*/
@@ -29,11 +29,11 @@ public class GameUI {
private String currentWord = "";
private Timer timer;
// Cumul de session (niveau 3)
// Cumul de session (niveau difficile)
private long sessionStartNano = -1L;
private int sessionScore = 0;
/** Reçoit la difficulté (1, 2, 3). */
/** Reçoit la difficulté (facile, moyen, difficile). */
public GameUI(int level) {
this.level = level;
}
@@ -88,9 +88,17 @@ public class GameUI {
scoreLabel = new JLabel("Score : 0");
timeLabel = new JLabel("Temps : 0s");
JPanel top = new JPanel(new GridLayout(2, 1));
top.add(buildTopLine(wordLabel, scoreLabel));
top.add(buildTopLine(triedLabel, timeLabel));
JLabel titleLabel = new JLabel("Sauver Michel!!", SwingConstants.CENTER);
titleLabel.setFont(new Font("Arial", Font.BOLD, 22));
titleLabel.setForeground(Color.RED);
JPanel top = new JPanel(new BorderLayout());
JPanel infoPanel = new JPanel(new GridLayout(2, 1));
infoPanel.add(buildTopLine(wordLabel, scoreLabel));
infoPanel.add(buildTopLine(triedLabel, timeLabel));
top.add(titleLabel, BorderLayout.NORTH);
top.add(infoPanel, BorderLayout.CENTER);
frame.add(top, BorderLayout.NORTH);
JPanel bottom = new JPanel(new BorderLayout(8, 8));
@@ -223,4 +231,4 @@ public class GameUI {
private void showMsg(String msg) {
JOptionPane.showMessageDialog(frame, msg);
}
}
}

View File

@@ -3,7 +3,7 @@ package front;
import javax.swing.*;
import java.awt.*;
/*
/**
* Menu de démarrage du jeu du pendu.
* Permet de choisir la difficulté (facile, moyen ou difficile).
*/
@@ -14,7 +14,7 @@ public class MenuUI {
* Interface graphique de la page d'accueil du jeu du pendu.
*/
public void show() {
frame = new JFrame("Jeu du Pendu - Sélection de la difficulté");
frame = new JFrame("Jeu du Pendu");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400, 300);
frame.setLocationRelativeTo(null);
@@ -41,7 +41,7 @@ public class MenuUI {
frame.setVisible(true);
}
/* Lance le jeu avec le niveau choisi */
/** Lance le jeu avec le niveau choisi */
private void startGame(int level) {
frame.dispose(); // ferme le menu
GameUI ui = new GameUI(level);

View File

@@ -8,10 +8,12 @@
- Affichage dune **image différente du pendu** à chaque erreur
- Lecture de mots depuis un **fichier externe** (`bibliothèque/mots.txt`)
- Validation des entrées (une seule LETTRE à la fois)
- Bouton **“Nouvelle partie”** pour rejouer sans relancer le programme
- Bouton **“Nouvelle partie”** pour rejouer sans relancer le programme
- Bouton **“Quitter”** pour quitter le programme
- Bouton **“Menu”** pour retourner à la page menu et pouvoir rechoisir le niveau de difficulté
- Messages de victoire / défaite
- Score + Chronomètre en direct
- Sélection du niveau dans le menu avant de jouer
- Sélection du niveau dans le menu avant de jouer (Facile, Moyen, Difficile)
---