forked from menault/TD3_DEV51_Qualite_Algo
Compare commits
4 Commits
2_Marvin_R
...
3_Marvin_P
| Author | SHA1 | Date | |
|---|---|---|---|
| 2760d87804 | |||
| df3186be0e | |||
| 31f3b5c998 | |||
| 5d1126e8fe |
BIN
Letter.class
Normal file
BIN
Letter.class
Normal file
Binary file not shown.
50
Letter.java
Normal file
50
Letter.java
Normal 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
TD3 - DEV5.1.pdf
BIN
TD3 - DEV5.1.pdf
Binary file not shown.
BIN
enter_word.class
Normal file
BIN
enter_word.class
Normal file
Binary file not shown.
@@ -1,23 +1,22 @@
|
||||
import java.util.*;
|
||||
import java.util.Scanner;
|
||||
|
||||
public class enter_word {
|
||||
|
||||
public static void main(String[] args) {
|
||||
// Création du scanner pour lire l'entrée utilisateur
|
||||
public static char getLetter() {
|
||||
Scanner scanner = new Scanner(System.in);
|
||||
// Boucle infinie jusqu’à ce qu’une lettre valide soit saisie
|
||||
char letter = ' ';
|
||||
|
||||
while (true) {
|
||||
System.out.print("Mets UNE (genre 1) lettre frero: ");
|
||||
String input = scanner.nextLine().toLowerCase();
|
||||
// Vérifie si la saisie contient exactement un caractère alphabétique
|
||||
if (input.length() == 1 && Character.isLetter(input.charAt(0))) {
|
||||
char letter = input.charAt(0);
|
||||
System.out.println("Big brain time, tu as su mettre 1 lettre (y'a des golmons qui comprennent pas cette consigne): " + letter);
|
||||
break; // Sort de la boucle après une saisie valide
|
||||
letter = input.charAt(0);
|
||||
break;
|
||||
} else {
|
||||
System.out.println("Frero ? 1 lettre, comment tu as pu rater ça , Quel singe");
|
||||
}
|
||||
}
|
||||
scanner.close();
|
||||
|
||||
return letter;
|
||||
}
|
||||
}
|
||||
|
||||
22743
francais.txt
Normal file
22743
francais.txt
Normal file
File diff suppressed because it is too large
Load Diff
BIN
main.class
Normal file
BIN
main.class
Normal file
Binary file not shown.
126
main.java
Normal file
126
main.java
Normal 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 d’erreurs
|
||||
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
BIN
word_search.class
Normal file
Binary file not shown.
28
word_search.java
Normal file
28
word_search.java
Normal 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";
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user