Salut tout le monde, je travaille actuellement sur un Mastermind sur Java's Cool, je suis ici pour rechercher une information quand à comment réaliser la comparaison entre les choix du joueur et celui de l'ordi afin de renvoyer le nombre de numéro bons, mais mal placés. Le bug vient du fait que les chiffres choisis par l'ordi soit plusieurs fois représentés (ex: 1 6 6 8). Vous constaterez par vous-même ces quelques bugs, autrement le reste fonctionne bien
Voilà ce que j'ai fait, j'espère que certains m'aideront. (y'a pas encore de commentaires mais ça devrait être compréhensible)
void main(){
int[] solution = new int [4];
for(int i=0;i<4;i++){
solution[i]=random(1,9);
print(solution[i]+" ");
}
int tour=1;
int victoire=0;
while(tour<11&&victoire!=1){
println("");
println("Essai numéro "+tour);
int[] joueur = new int [4];
for(int j=0;j<4;j++){
println("");
println("Veuillez choisir le numéro de l'emplacement " + (j+1));
joueur[j]=readInteger();
if(joueur[j]>0&&joueur[j]<9){
println("Vous avez choisi le numéro "+joueur[j]);
println("");
}else{while(joueur[j]<1||joueur[j]>8){
println("Veuillez entrer un numéro compris entre 1 et 8");
println("Choisissez de nouveau votre numéro pour l'emplacement "+(j+1));
println("");
joueur[j]=readInteger();
}
}
}println("Votre combinaison pour ce tour est donc "+joueur[0]+" "+joueur[1]+" "+joueur[2]+" "+joueur[3]);
println("");
int a=0;
int b=0;
int c=b-a;
for(int k=0;k<4;k++){
if(joueur[k]==solution[k]){
a++;
}
}
for(int l=0;l<4;l++){
for(int m=0;m<4;m++){
if(solution[m]==joueur[l]){
b++;
joueur[l]=0;
solution[m]=0;
}
}
}
if(a==4){
println("Super ! Vous avez gagné, votre combinaison correspond à celle de l'ordinateur !");
victoire=1;
}else{
println("Vous avez "+a+" numéro(s) bien placé(s) et "+c+" bon(s) numéro(s) mais incorrectement placé(s)");
}
tour=tour+1;
}
if(victoire==0){
println("Vous avez perdu..");
println("La combinaison à trouver était "+solution[0]+" "+solution[1]+" "+solution[2]+" "+solution[3]);
}
println("Votre partie est terminée, merci d'avoir joué");
}