MASTERMIND

Fermé
sims007 Messages postés 1 Date d'inscription dimanche 13 janvier 2013 Statut Membre Dernière intervention 16 janvier 2013 - 16 janv. 2013 à 23:34
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 16 janv. 2013 à 23:51
Bonjour,
j'ai un mastermind à faire, j'aimerai savoir s'il ya des erreurs dans mon programme, merci.


Le programme à réaliser porte sur le mastermind qui est un jeu de logique et de deduction qui repose sur le principe suivant:retrouver une combinaison de 4
chiffres (parmi 8 chiffres possibles) en moins de 10 essais.
les regles de ce jeu sont les suivantes:
A chaque essai, le joueur propose une combinaison, puis reçoit des indications sur les couleurs et les emplacements qu'il a choisi:
un pion noir indique une bille bien placée.
un pion blanc indique une bille de la bonne couleur mais mal placée.
La stratégie consiste à choisir les couleurs et leur emplacement en fonction des coups précédents.
Le but est d'obtenir le plus d'informations et de se rapprocher le plus rapidement possible de la solution puisque le nombre de proposition est limité.
A noter: il peut y avoir plusieurs pions de la même couleur.
La consigne est la suivante:
Il faut écrire un algorithme de jeu de mastermind où les couleurs sont remplacées par des chiffres pouvant varier de 1 à 8.
L'ordinateur effectue 4 tirages aléatoires.
le joueur devra retrouver ces 4 chiffres ainsi que leur bon emplacement.
Le joueur aura 10 essais pour retrouver la bonne combinaison.


import java.util.Random;
public class JeuMasterMind {
public int LIMITE_INFRIEURE = 8;
public int MAX_ESSAI = 10;
public static void main(String[] argv) {
JeuMasterMind JeuMasterMind = new JeuMasterMind();
int[] combiOrdinateur = JeuMasterMind. creerCombinaisonParOrdinateur( );
boolean succes = false;
System.out.print("la combinaison à trouver est : ");.
for (int i = 0; i < combiOrdinateur.length; i= i+1) {

}

for (int k = 0; k < JeuMasterMind.MAX_ESSAI; k= k+1) {
System.out.println("ESSAI " + (k + 1));
System.out.println("SAISIR 4 CHIFFRES ENTRE 1 ET 8");
// initiallisation de la combinaison du joueur
int[] combiJoueur = JeuMasterMind. creerCombinaisonJoueur();
System.out.print("la combinaison du joueur est ");
for (int i = 0; i < combiJoueur.length; i=i+1) {
System.out.print(combiJoueur[ i] );
}
System.out.println( "");
int succesPositionTotal = 0;
StringBuilder sb = new StringBuilder();
for (int i = 0; i < combiJoueur.length; i=i+1) {
int succesPosition = 0;
boolean estDansTableu = false;
for (int m = 0; m < combiJoueur.length; m=m+1) {
if (i == m) {
// correspondace de position
if (combiJoueur[i] == combiOrdinateur[m]) {
succesPosition = succesPosition + 1;
}
} else {
if (JeuMasterMind. chiffreEstDansTableau( combiJoueur[i], combiOrdinateur)) {
estDansTableu = true;
} else {
estDansTableu = false;
}
}
}
//System.out.println(" succesPosition = " + succesPosition + " estDansTableu = " + estDansTableu);
if (succesPosition > 0) {
sb.append("chiffre ").append(i + 1).append(" est bien placé \n");
} else {
if (estDansTableu ) {
sb.append("chiffre ").append(i + 1).append(" est dans la liste \n");
} else {
sb.append("chiffre ").append(i + 1).append(" n'est pas dans la liste \n");
}
}
succesPositionTotal = succesPositionTotal+ succesPosition;
}
if(succesPositionTotal == 4){
succes = true;
break;
} else {
System.out.println(sb. toString());
}
}

if(succes == true){ // si succes = vrai afficher "bravo vous avez gangé".
System.out.println(" Bravo vous avez gangé");
}
}




public int[] creerCombinaisonParOrdinateur( ) {
Random rand = new Random();
int[] combiOrdinateur = new int[4];
combiOrdinateur[0] = rand.nextInt(LIMITE_INFRIEURE) + 1;
combiOrdinateur[1] = rand.nextInt(LIMITE_INFRIEURE) + 1;
combiOrdinateur[2] = rand.nextInt(LIMITE_INFRIEURE) + 1;
combiOrdinateur[3] = rand.nextInt(LIMITE_INFRIEURE) + 1;
return combiOrdinateur;
}
public int[] creerCombinaisonJoueur() {
int[] combiJoueur = new int[4];
java.util.Scanner entree = new java.util.Scanner(System.in);
combiJoueur[0] = entree.nextInt();
combiJoueur[1] = entree.nextInt();
combiJoueur[2] = entree.nextInt();
combiJoueur[3] = entree.nextInt();
return combiJoueur;
}

public boolean chiffreEstDansTableau(int element, int tableau[]) {
boolean estDansTableu = false;
for (int i = 0; i < tableau.length; i=i+1) {
if (element == tableau[i]) {
return true;
}
}
return estDansTableu;

1 réponse

KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
16 janv. 2013 à 23:51
"j'aimerai savoir s'il ya des erreurs dans mon programme"
Oui, mais elles apparaissent immédiatement à la compilation, donc pourquoi as tu besoin de nous pour voir ce qui est évident ?

JeuMasterMind.java:9: error: illegal start of expression
System.out.print("la combinaison à trouver est : ");.
                                                    ^
Il faut enlever le point qui se promène...

JeuMasterMind.java:97: error: reached end of file while parsing
return estDansTableu;
                     ^
Il te manque deux accolades pour terminer la méthode et la classe.
0