Jeu le pendu

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);

        // Début Jeu

        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("_") // Toutes les cases de la chaine mystère remplie
               || jlp.getEssais() == 0) {                                    // Nombre d'essais atteint
                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)

Leave a Comment