diff --git a/Jeu_pendu/Back/Word.java b/Jeu_pendu/Back/Word.java deleted file mode 100644 index 060a08a..0000000 --- a/Jeu_pendu/Back/Word.java +++ /dev/null @@ -1,85 +0,0 @@ -package back; - -import java.io.IOException; -import java.nio.charset.StandardCharsets; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; -import java.security.SecureRandom; -import java.util.ArrayList; -import java.util.List; -import java.util.stream.Stream; - -/** - * Fournit les mots pour le jeu. - * - Lit d'abord "bibliothèque/mots.txt" (UTF-8), 1 mot par ligne. - * - Ignore les lignes vides et celles qui commencent par '#'. - * - Si le fichier est introuvable ou vide, bascule sur une liste par défaut. - */ -public class Words { - - /** Chemin du fichier de mots (relatif à la racine du projet). */ - private static final Path WORDS_PATH = Paths.get("Bibliotheque", "mots.txt"); - - /** Liste de secours si le fichier n'est pas disponible. */ - private static final List DEFAULT = List.of( - "algorithm", "variable", "function", "interface", "inheritance", - "exception", "compiler", "database", "network", "architecture", - "iteration", "recursion", "encryption", "framework", "protocol" - ); - - /** RNG partagé et cache des mots chargés. */ - private static final SecureRandom RNG = new SecureRandom(); - private static volatile List CACHE = null; - - /** - * Retourne un mot choisi au hasard depuis le fichier ou la liste par défaut. - * Déclenche un chargement paresseux (lazy-load) si nécessaire. - */ - public static String random() { - ensureLoaded(); - return CACHE.get(RNG.nextInt(CACHE.size())); - } - - /** - * Recharge les mots depuis le fichier. Utile si modification de mots.txt à chaud. - */ - public static synchronized void reload() { - CACHE = loadFromFileOrDefault(); - } - - /** Garantit que le cache est initialisé. */ - private static void ensureLoaded() { - if (CACHE == null) { - synchronized (Words.class) { - if (CACHE == null) { - CACHE = loadFromFileOrDefault(); - } - } - } - } - - /** Tente de charger depuis le fichier, sinon renvoie la liste par défaut. */ - private static List loadFromFileOrDefault() { - List fromFile = readUtf8Lines(WORDS_PATH); - if (fromFile.isEmpty()) return DEFAULT; - return fromFile; - } - - /** - * Lit toutes les lignes UTF-8 depuis le chemin fourni, - * en filtrant vides et commentaires (# ...). - */ - private static List readUtf8Lines(Path path) { - List result = new ArrayList<>(); - try (Stream lines = Files.lines(path, StandardCharsets.UTF_8)) { - lines.map(String::trim) - .filter(s -> !s.isEmpty()) - .filter(s -> !s.startsWith("#")) - .forEach(result::add); - } catch (IOException e) { - // Silencieux : on basculera sur DEFAULT - } - return result; - } -} \ No newline at end of file diff --git a/Jeu_pendu/README.md b/Jeu_pendu/README.md deleted file mode 100644 index 060815a..0000000 --- a/Jeu_pendu/README.md +++ /dev/null @@ -1,26 +0,0 @@ -- **bibliothèque/mots.txt** → liste des mots à deviner (1 par ligne) -- **assets/images/** → images du pendu (de 0.png à 6.png) - ---- - -## Fonctionnalités - -Affichage d’une **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 -Messages de victoire / défaite - ---- - -## Compilation et exécution - -### Compilation -```javac -d out $(find -name "*.java")``` - -### Exécution -```java -cp out main.Main``` - ---- - -Mini projet effectuer par Clément JANNAIRE et Clémence DUCREUX. \ No newline at end of file diff --git a/out/back/Check.class b/out/back/Check.class new file mode 100644 index 0000000..95b07da Binary files /dev/null and b/out/back/Check.class differ diff --git a/out/back/Game.class b/out/back/Game.class new file mode 100644 index 0000000..f47326e Binary files /dev/null and b/out/back/Game.class differ diff --git a/out/back/Result.class b/out/back/Result.class new file mode 100644 index 0000000..33ddf15 Binary files /dev/null and b/out/back/Result.class differ diff --git a/out/back/Words.class b/out/back/Words.class new file mode 100644 index 0000000..cf6b8bb Binary files /dev/null and b/out/back/Words.class differ diff --git a/out/front/Gallows$BufferedImage.class b/out/front/Gallows$BufferedImage.class new file mode 100644 index 0000000..523522f Binary files /dev/null and b/out/front/Gallows$BufferedImage.class differ diff --git a/out/front/Gallows.class b/out/front/Gallows.class new file mode 100644 index 0000000..a93d73d Binary files /dev/null and b/out/front/Gallows.class differ diff --git a/out/front/GameUI$1.class b/out/front/GameUI$1.class new file mode 100644 index 0000000..1ca3aa5 Binary files /dev/null and b/out/front/GameUI$1.class differ diff --git a/out/front/GameUI.class b/out/front/GameUI.class new file mode 100644 index 0000000..a10a7e5 Binary files /dev/null and b/out/front/GameUI.class differ diff --git a/out/main/Main.class b/out/main/Main.class new file mode 100644 index 0000000..e1df1b8 Binary files /dev/null and b/out/main/Main.class differ