6 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
2fe044753a rm out 2025-10-08 17:09:49 +02:00
2dc9caee23 Merge branch 'JANNAIRE' 2025-10-08 17:08:13 +02:00
cc14043782 readme 2025-10-08 16:25:54 +02:00
23 changed files with 30 additions and 18 deletions

View File

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

View File

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

View File

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

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -5,11 +5,15 @@
## Fonctionnalités ## Fonctionnalités
Affichage dune **image différente du pendu** à chaque erreur - Affichage dune **image différente du pendu** à chaque erreur
Lecture de mots depuis un **fichier externe** (`bibliothèque/mots.txt`) - Lecture de mots depuis un **fichier externe** (`bibliothèque/mots.txt`)
Validation des entrées (une seule LETTRE à la fois) - 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
Messages de victoire / défaite - 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 (Facile, Moyen, Difficile)
--- ---

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.