Partage
  • Partager sur Facebook
  • Partager sur Twitter

prototype de mastermind

Sujet résolu
    17 septembre 2020 à 16:10:41

    bonjour,

    j'ai un probleme avec mon OkmaisMauvaisePosition pouvez vous m'aidez s'il vous plait 

    cordialement,

    victor 

    code :

    import java.util.Random;
    import java.util.Scanner;
    public class MasterMind {
     
    		 
        private static final char OK = 'o';
        private static final char OKmaisMauvaisePosition = '●';
        private static final char FAUX = 'x';
    	 
        public static void main(String[] args) {
            Scanner sc = new Scanner (System.in);
            final int NB_CHIFFRES = 4; // on pourrait aussi demander à l'utilisateur
            final int MAX = 4; // de saisir ces valeurs
            final int ESSAIS_MAX = 10;
    	 
            final int[] solution = new int[NB_CHIFFRES];
    	 
            Random r = new Random();
            for(int i=0 ; i<NB_CHIFFRES ; i++) {
                solution[i] = r.nextInt(MAX+1);
            }
    	 
            int count = 0;
    	 
            System.out.println("Mastermind, trouve la combinaison des " + NB_CHIFFRES + " chiffres entre 0 et " + MAX + ".");
            System.out.println( OK + " signifie que c'est le bon chiffre à la bonne place et " + OKmaisMauvaisePosition + " signifie que c'est le bon chiffre mais a la mauvaise place" + FAUX + "signifie que c'est le mauvais chiffre.");
            System.out.println("Attention, vous avez droit a " + ESSAIS_MAX + " essais");
            System.out.println("----------------------------");
    	 
    	 
            int[] chiffres = new int[NB_CHIFFRES];
            boolean victoire = false;
            do {
                System.out.println("\nEssai n° " + (count+1) + "/" + ESSAIS_MAX + " :");
                int nombreSaisi = sc.nextInt();
    	            // ça parâit très compliqué mais en fait
    	            // ce calcul se contente "juste" de récupérer le chiffre à la position
    	            // i dans nombreSaisi
                for(int i=0 ; i<NB_CHIFFRES ; i++)
                    chiffres[i] = (int) (nombreSaisi / (Math.pow(10, (NB_CHIFFRES-i-1)) ))%10;
    	 
    	            // On écrit la proposition du joueur
                for(int i=0 ; i<NB_CHIFFRES ; i++)
                    System.out.print(chiffres[i] + " ");
                System.out.println();// on passe à la ligne
    	 
    	 
                victoire = true; // on met à vrai pour l'instant
                for(int i=0 ; i<NB_CHIFFRES ; i++) {
                    boolean bonChiffre = chiffres[i] == solution[i];
                    System.out.print( (bonChiffre ? OK : FAUX :: OKmaisMauvaisePosition ) + " "); // instruction ternaire
    	                /* La ligne au dessus équivaut à tout le bloc if else dessous
    	                if(bonChiffre)
    	                    System.out.println(ok + " ");
    	                else System.out.println(faux + " ");
    	                */
    	 
                    victoire = victoire && bonChiffre; // victoire sera vrai UNIQUEMENT si bonChiffre vaut vrai a CHAQUE tour de boucle
                }
                System.out.println(); // on passe à la ligne
    	 
                count++;
    	 
                if(count == ESSAIS_MAX)
                    System.out.println("He non, vous avez epuisé vos " + ESSAIS_MAX + " essais, c'est perdu pour vous...");
    	 
            	}while(!victoire && count < ESSAIS_MAX);
            	System.out.println("En seulement "+count+ " coups");
    	        sc.close();
    	    }
    	}
     
    
    • Partager sur Facebook
    • Partager sur Twitter
      17 septembre 2020 à 17:46:18

      C'est quoi le probleme, à part que le nom d'une variable commence generalement par une minuscule.
      • Partager sur Facebook
      • Partager sur Twitter

      prototype de mastermind

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown