import fr.dyma.model.JeuLePendu;
import fr.dyma.utilities.ChaineHelper;
import java.util.Random;
import java.util.Scanner;
public class Main {
private static int ESSAIS = 10;
private final static String [] MYSTERES = new String[] { "Pomme", "datte", "Cerise", "Grenade", "Mangoustan" };
private static int positionAleatoire;
private static String chaineAleatoireSecrete = "";
private static String lettre;
private static Scanner scanner = new Scanner(System.in);
public static void main(String[] args) {
System.out.println("----- JEU DU PENDU -----");
positionAleatoire = new Random().nextInt(MYSTERES.length);
chaineAleatoireSecrete = MYSTERES[positionAleatoire];
JeuLePendu jlp = new JeuLePendu(chaineAleatoireSecrete, ESSAIS);
System.out.println("(" + chaineAleatoireSecrete + ")");
System.out.println(jlp);
while(true) {
System.out.println("Entrer une lettre: ");
lettre = String.valueOf(scanner.nextLine().charAt(0));
jlp.setChaineMystere(ChaineHelper.getNewChaine(lettre, chaineAleatoireSecrete, jlp.getChaineMystere()));
--ESSAIS;
jlp.setEssais(ESSAIS);
System.out.println(jlp);
if(!String.join("",jlp.getChaineMystere()).contains("_")
|| jlp.getEssais() == 0) {
break;
}
}
if(jlp.isWon()) {
System.out.println("BRAVO :-)");
} else if(jlp.isLost()){
System.out.println("PERDU :-(");
}
}
}Langage du code : JavaScript (javascript)
package fr.dyma.model;
import java.util.Arrays;
public class JeuLePendu {
private String chaineSecrete;
private String[] chaineMystere;
private int essais;
public JeuLePendu(String chaineAleatoireSecrete, int essais) {
this.chaineSecrete = chaineAleatoireSecrete;
this.essais = essais;
this.chaineMystere = new String[chaineAleatoireSecrete.length()];
for (int i=0; i<chaineMystere.length; i++) {
this.chaineMystere[i] = "_";
}
}
public String[] getChaineMystere() {
return chaineMystere;
}
public void setChaineMystere(String[] chaineMystere) {
this.chaineMystere = chaineMystere;
}
public int getEssais() {
return this.essais;
}
public void setEssais(int essais) {
this.essais = essais;
}
public boolean isLost() {
return this.essais == 0;
}
public boolean isWon() {
return !String.join("", this.chaineMystere).contains("_");
}
@Override
public String toString() {
final StringBuilder sb = new StringBuilder("JeuLePendu{");
sb.append("chaineMystere=").append(Arrays.toString(chaineMystere));
sb.append(", essais=").append(essais);
sb.append('}');
return sb.toString();
}
}
Langage du code : JavaScript (javascript)
package fr.dyma.utilities;
public class ChaineHelper {
public static String [] getNewChaine(String lettre, String chainePattern, String [] newChaine) {
if(String.join("", chainePattern).toLowerCase().contains(lettre) && !String.join("", newChaine).contains(lettre)) {
for(int i=0; i<chainePattern.length(); i++) {
if(String.valueOf(chainePattern.charAt(i)).equalsIgnoreCase(lettre)) {
newChaine[i] = String.valueOf(chainePattern.charAt(i));
}
}
}
return newChaine;
}
}
Langage du code : JavaScript (javascript)