Compare commits

1 Commits

Author SHA1 Message Date
James Boutaric
c8a83e9637 . 2025-10-15 10:26:53 +02:00
8 changed files with 22969 additions and 0 deletions

50
Letter.java Normal file
View File

@@ -0,0 +1,50 @@
import java.util.*;
public class Letter {
public String wordToFind;
public char selectedLetter;
public StringBuilder wordBuilding;
public StringBuilder incorrectLetters = new StringBuilder();
// Constructeur
public Letter(String mot) {
this.wordToFind = mot;
this.wordBuilding = new StringBuilder();
// Initialise le mot caché avec des underscores
for (int i = 0; i < mot.length(); i++) {
if (mot.charAt(i) == ' ') {
this.wordBuilding.append(' '); // garde les espaces
} else {
this.wordBuilding.append('_');
}
}
}
// Setter pour la lettre sélectionnée
public void setLetter(char currentLetter) {
this.selectedLetter = currentLetter;
}
// Vérifie si la lettre est dans le mot
public boolean letterInWord() {
boolean found = false;
for (int i = 0; i < this.wordToFind.length(); i++) {
if (this.selectedLetter == this.wordToFind.charAt(i)) {
// Remplace l'underscore par la lettre correcte
this.wordBuilding.setCharAt(i, this.selectedLetter);
found = true;
}
}
// Si la lettre n'est pas trouvée, on l'ajoute aux incorrectes
if (!found) {
if (this.incorrectLetters.length() > 0) {
this.incorrectLetters.append(" ");
}
this.incorrectLetters.append(this.selectedLetter);
}
return found;
}
}

BIN
enter_word.class Normal file

Binary file not shown.

22
enter_word.java Normal file
View File

@@ -0,0 +1,22 @@
import java.util.Scanner;
public class enter_word {
public static char getLetter() {
Scanner scanner = new Scanner(System.in);
char letter = ' ';
while (true) {
System.out.print("Mets UNE (genre 1) lettre frero: ");
String input = scanner.nextLine().toLowerCase();
if (input.length() == 1 && Character.isLetter(input.charAt(0))) {
letter = input.charAt(0);
break;
} else {
System.out.println("Frero ? 1 lettre, comment tu as pu rater ça , Quel singe");
}
}
return letter;
}
}

22743
francais.txt Normal file

File diff suppressed because it is too large Load Diff

BIN
main.class Normal file

Binary file not shown.

126
main.java Normal file
View File

@@ -0,0 +1,126 @@
import java.util.Scanner;
public class main {
public String word = word_search.getRandomWord();
public Letter curentLetter = new Letter(word);
public int nbError=0;
public boolean winCondition=false;
//creer wincondtion (je lis le mot en construction (wordbuilding), compare avec word, si égal c'est gagné)
public boolean winCondition(){
if(curentLetter.wordBuilding.toString().equals(word)){
return true;
}else{
return false;
}
}
public static void displayHangman(int mistakes) {
String[] hangman = new String[7]; // 7 étapes du pendu
// Étape 0 : début du jeu
hangman[0] =
"------\n" +
"| |\n" +
" |\n" +
" |\n" +
" |\n" +
" |\n" +
"=========\n";
// Étape 1 : tête
hangman[1] =
"------\n" +
"| |\n" +
"O |\n" +
" |\n" +
" |\n" +
" |\n" +
"=========\n";
// Étape 2 : tronc
hangman[2] =
"------\n" +
"| |\n" +
"O |\n" +
"| |\n" +
" |\n" +
" |\n" +
"=========\n";
// Étape 3 : un bras
hangman[3] =
"------\n" +
"| |\n" +
"O |\n" +
"/| |\n" +
" |\n" +
" |\n" +
"=========\n";
// Étape 4 : deux bras
hangman[4] =
"------\n" +
"| |\n" +
"O |\n" +
"/|\\ |\n" +
" |\n" +
" |\n" +
"=========\n";
// Étape 5 : une jambe
hangman[5] =
"------\n" +
"| |\n" +
"O |\n" +
"/|\\ |\n" +
"/ |\n" +
" |\n" +
"=========\n";
// Étape 6 : pendu complet (défaite)
hangman[6] =
"------\n" +
"| |\n" +
"O |\n" +
"/|\\ |\n" +
"/ \\ |\n" +
" |\n" +
"=========\n";
// Affiche le pendu correspondant au nombre derreurs
System.out.println(hangman[mistakes]);
}
//Element toujours présent
public void showGame(){
System.out.println("lettre fausse : " + this.curentLetter.incorrectLetters);
displayHangman(nbError);
System.out.println("mot a trouver " + this.curentLetter.wordBuilding);
}
//Permet au jeu de fonctionner et de se terminer
public void game(){
while(nbError<6 && !winCondition()){
char letter = enter_word.getLetter();
this.curentLetter.setLetter(letter);
if (!this.curentLetter.letterInWord()){
nbError++;
}
showGame();
}
if (winCondition()){
// tu gagnes
System.out.println("victoir (celui qui a écris a 5 de QI)");
}
else{ //tu perds
System.out.println("ta perdu sale étron");
System.out.println(" le bon mot était : " + this.word);
}
}
public static void main(String[] args) {
main test =new main();
test.game();
}
}

BIN
word_search.class Normal file

Binary file not shown.

28
word_search.java Normal file
View File

@@ -0,0 +1,28 @@
import java.util.*;
import java.io.*;
public class word_search {
public static String getRandomWord() {
List<String> words = new ArrayList<>(); // Liste dynamique de mots
Random random = new Random();
try { //lis le fichier, regarde si il existe avant de sélectionner un mot aléatoire
File file = new File("francais.txt");
Scanner scanner = new Scanner(file, "UTF-8");
while (scanner.hasNextLine()) {
String line = scanner.nextLine().trim();
if (!line.isEmpty()) { // ignore les lignes vides
words.add(line.toLowerCase());
}
}
scanner.close();
if (words.isEmpty()) {
System.out.println(" Aucun mot trouvé dans le fichier français.txt !");
return "erreur";
}
return words.get(random.nextInt(words.size()));
} catch (FileNotFoundException e) {
System.out.println(" Fichier 'français.txt' introuvable !");
return "erreur";
}
}
}