Ajout d’une interface graphique à un mastermind sous Java's cool

Fermé
Ryuji35 Messages postés 3 Date d'inscription samedi 12 septembre 2015 Statut Membre Dernière intervention 25 avril 2017 - 25 avril 2017 à 19:52
Bonjour,
nous avons comme projet d'ISN du BAC de faire un mastermind sous Java's cool.

Nous avons récupéré un programme sur Internet et nous l'avons modifié. Nous aimerions désormais ajouter une interface graphique afin qu'il fasse apparaître un tableau de mastermind avec les 4 pions de la solution gagnante (uniquement pour l'instant). Nous avons réalisé un autre programme qui créer des carrés des 8 couleurs choisies .

Programme du mastermind


int bons_bien_places = 0; // bons chiffres bien placés
int bons_mal_places = 0; // bons chiffres mal placés
int c_est_gagne = 0; // 0 = faux, 1 = vrai
 
// remplir le tableau solution avec 4 chiffres aléatoires compris entre 1 et 8
void nombres_aleatoires(int master[]){
for (int i = 0 ; i < 4 ; i++){
master[i] = random(1,9); 
} 
}  
 
// remplir le tableau du joueur avec 4 chiffres que le joueur entre 
void propositions_du_joueur(int guess[][], int nombre_de_vies){ 
int x = 10 - nombre_de_vies; 
for (int i = 0 ; i < 4 ; i++){ 
guess[i][x] = readInteger((i+1) + "/4"); 
} 
}  
 
// déterminer le nombre de bons chiffres bien placés et de bons chiffres mal placés 
void comparaison_des_resultats(int nombre_de_vies, int master[], int guess[][]){ 
int x = 10 - nombre_de_vies; 
bons_bien_places = 0; 
bons_mal_places = 0; 
boolean[] masterTest = new boolean[4]; 
boolean[] guessTest = new boolean[4];   
 
// combien de bons chiffres sont bien placés 
for (int i = 0 ; i < 4 ; i++){ 
if (master[i] == guess[i][x]){ 
bons_bien_places++; 
masterTest[i] = true; 
guessTest[i] = true; 
} 
}  
 
// si tous les chiffres sont bien placés, l'affirmation 'le joueur a gagné' est vraie 
if (bons_bien_places == 4){ 
c_est_gagne = 1;
} 
   
// sinon, combien de bons chiffres sont mal placés 
else { 
for (int i = 0 ; i < 4 ; i++){ 
for (int j = 0 ; j < 4 ; j++){ 
if (master[i] == guess[j][x] && !masterTest[i] && !guessTest[j]){ 
bons_mal_places++; 
masterTest[i] = true; 
guessTest[j] = true; 
} 
} 
} 
} 
}   
 
// afficher les propositions que le joueur a fait et lui retourner les informations 'bien placés' & 'mal placés' 
void affiche_les_propositions(int nombre_de_vies, int guess[][]){ 
int x = 10 - nombre_de_vies; 
print(x+1 + " : "); 
for (int i = 0 ; i < 4 ; i++){ 
print(guess[i][x] + " "); 
} 
println(" : " + bons_bien_places + " bons chiffres bien placés et " + bons_mal_places + " mal placés"); 
println(); 
}   
 
// afficher le message de victoire 
void gagne(int nombre_de_vies){ 
println("Félicitations, vous avez gagné au bout de " + (11-nombre_de_vies) + " essais !"); 
} 
   
// afficher le message de défaite 
void perdu(){ 
println("Vous avez perdu..."); 
}
    
// déterminer si le joueur a gagné ou perdu pour appeller les fonctions respectives 
void gagne_ou_perdu(int nombre_de_vies){ 
if (c_est_gagne == 1){ 
gagne(nombre_de_vies); 
} 
else if (nombre_de_vies == 1 && c_est_gagne == 0){ 
perdu(); 
} 
}   
 
void main(){ // prgm principal 
int master[] = new int [4]; // tableau solution 
int guess[][] = new int [4][10]; // tableau du joueur 
int nombre_de_vies = 10; // nombre de vies du joueur   
 
// présentation du jeu 
println(); 
println("Règles du mastermind"); 
println("L’ordinateur a généré une série de quatre couleurs parmi 8 couleurs disponibles."); 
println("On vous demande de trouver l’ordre et le placement de ces 4 couleurs ainsi que les quatre couleurs"); 
println("de cette suite "); 
println("Pour trouver les couleurs et le placement de celle-ci vous avez le droit à 10 essais si vous n’avez pas"); 
println("trouvé à la fin de ces 10 essais vous perdez "); 
println("Si vous trouvé le placement et les couleurs des ces quatre couleurs vous gagné "); 
println("Les couleurs sont modélisées par des numéros et le placement des chiffres dans la suite dépend de"); 
println("l’ordre dans lequel vous rentrez les différents numéros de la suite "); 
println("Les différentes couleurs sont les suivantes et elles correspondent aux numéros suivants :"); 
println("Rouge : 1 "); 
println("Vert : 2");
println("Blanc : 3"); 
println("Rose : 4 "); 
println("Jaune : 5"); 
println("Bleu : 6 "); 
println("Orange : 7"); 
println("Violet : 8"); 
println("L’ordinateur vous dira à chaque étape le nombre de pions de la bonne couleur bien placés et ceux de"); 
println("la bonne couleur mal placés."); 
println("Good Luck and Have fun"); 
println();    
nombres_aleatoires(master);   
 
// tant que le joueur a au moins 1 vie et qu'il n'a pas gagné, appel de ces fonctions
while (nombre_de_vies != 0 && c_est_gagne == 0){
propositions_du_joueur(guess, nombre_de_vies); 
comparaison_des_resultats(nombre_de_vies, master, guess); 
affiche_les_propositions(nombre_de_vies, guess); 
gagne_ou_perdu(nombre_de_vies);
nombre_de_vies--; // à chaque fin de tour, enlever 1 vie 
} 
print("Solution : "); // afficher la solution à la fin 
for (int i = 0 ; i < 4 ; i++){ 
print(master[i] + " "); 
} 
println(""); 
println("Merci d'avoir joué"); 
println("Projet d'ISN réalisé par ");    
}


Programme des carrés colorés

void main() { 
int x, y; 
initDrawing("palette de 8 couleurs", 0, 0, 600, 600); 

for(x = 50; x <= 100; x = x + 1)//rouge 
for(y = 50; y <= 100; y = y + 1) 
drawPixel(x, y, 255, 0, 0);   

for(x = 150; x <= 200; x = x + 1)//vert 
for(y = 50; y <= 100; y = y + 1) 
drawPixel(x, y, 0, 255, 0);   
 
for(x = 250; x <= 300; x = x + 1)//turquoise 
for(y = 50; y <= 100; y = y + 1) 
drawPixel(x, y, 0, 255, 255); 
   
for(x = 350; x <= 400; x = x + 1)//rose 
for(y = 50; y <= 100; y = y + 1) 
drawPixel(x, y, 255, 0, 100);   
 
for(x = 50; x <= 100; x = x + 1)//jaune 
for(y = 150; y <= 200; y = y + 1) 
drawPixel(x, y, 255, 255, 0);   
 
for(x = 150; x <= 200; x = x + 1)//bleu 
for(y = 150; y <= 200; y = y + 1) 
drawPixel(x, y, 0, 0, 255);   
 
for(x = 250; x <= 300; x = x + 1)//orange 
for(y = 150; y <= 200; y = y + 1) 
drawPixel(x, y, 255, 100, 0); 
   
for(x = 350; x <= 400; x = x + 1)//violet 
for(y = 150; y <= 200; y = y + 1) 
drawPixel(x, y, 255, 0, 255);   
 
for(x = 10; x <= 440; x = x + 1)//cadre du dessus
for(y = 5; y <= 10; y = y + 1) 
drawPixel(x, y, 0, 0, 0);   
 
for(x = 10; x <= 440; x = x + 1)//cadre du dessous 
for(y = 250; y <= 255; y = y + 1) 
drawPixel(x, y, 0, 0, 0);
    
for(x = 10; x <= 15; x = x + 1)//cadre de gauche 
for(y = 10; y <= 250; y = y + 1) 
drawPixel(x, y, 0, 0, 0);   
 
for(x = 440; x <= 445; x = x + 1)//cadre de droite 
for(y = 5; y <= 255; y = y + 1) 
drawPixel(x, y, 0, 0, 0); 
}


Nous souhaiterions donc que le programme original puisse reprendre celui des carrés de couleur.

Si vous avez des idées ou même des pistes nous sommes preneur, s'il vous plaît. =)