1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190
|
import javax.swing.*;
import java.awt.*;
public class Partie {
// déclaration de la variable nbreJoueur de type int
private Joueur []tabJoueur; // déclaration d’un tableau de nom tabJoueur qui contient des éléments de type Joueur
private Joueur joueur_principal ; // déclaration de la variable joueur_principal de type Joueur
//private String texte_final;
private static String inputValue1="";
private static String inputValue2="";
private static String inputValue3="";
private StringBuilder texte_final;
//constructeur de la classe partie
Partie(int nbre, String nom_lanceur, int nbre_tirages_partie){
texte_final = new StringBuilder();
this.tabJoueur= new Joueur[nbre]; //création d'un tableau d'un nombre d'éléments = contenu de la variable nombre_joueurs
this.joueur_principal = new Joueur("joueur_principal", nbre_tirages_partie); //création d'un joueur joueur_principal qui recoit toujours en paramètre le nom: joueur_principal.
this.tabJoueur[0]= new Joueur(nom_lanceur,nbre_tirages_partie);
for(int i=1; i<= tabJoueur.length-1;i++) //on commence à i=1 et non pas à i=0 car dans[0]il y a le joueur principal
{
tabJoueur[i]= new Joueur("Joueur"+i , nbre_tirages_partie); // //+i:c'est possible car il y a une conversion implicite du int en string.
}// fin de boucle for
}// fin de constructeur de la classe Partie
public void tirage_des_joueurs(){
for(int i =0; i<= tabJoueur.length-1;i++) //cette boucle for parcourt le tableau tabJoueur
{
tabJoueur[i].tirageUnJoueur(); //appel de cette méthode pour chaque joueur du tableau
//this.texte_final = texte_final + tabJoueur[i].get_texte_final_joueur()+ "\n";
//this.texte_final = texte_final + tabJoueur[i].get_texte_final_joueur();
j'ai mis cette partie de code en commentaires pour pouvoir la remplacer par la tienne
:
texte_final.append(tabJoueur[i].get_texte_final_joueur());
texte_final.append("\n"); c'est la nouvelle partie de code
//On récupère le score de chaque élément
//du tableau tabJoueur contenu dans la variable texte_final_joueur de la classe joueur
System.out.println(tabJoueur[i].get_texte_final_joueur());
}// fin de for
joueur_principal.tirageUnJoueur();
//this.texte_final=texte_final + this.joueur_principal.get_texte_final_joueur()+ "\n";
//this.texte_final=texte_final + this.joueur_principal.get_texte_final_joueur();
j'ai également remplacé mon code ci-dessus par le tien ici
texte_final.append(this.joueur_principal.get_texte_final_joueur());
texte_final.append("\n");
JOptionPane.showMessageDialog(null,"<html><center><body><FONT COLOR=\"YELLOW\"><FONT SIZE=5> "+this.texte_final+"\n"+"</FONT></FONT></body></center></html>" , "résultat de la partie", JOptionPane.INFORMATION_MESSAGE);
}// fin de méthode tirage_des_joueurs
public void jouer(){
this.tirage_des_joueurs();
}
public static void main(String[] args) {
String inputValue1="";
int nombre_joueurs=0;
String nom_lanceur_partie="";
int nbre_cartes_tirees=0;
int temp=4; //temp peut prendre comme valeur 0(oui),1(non),2 et -1(annuler) et pour ne pas confondre avec le oui
//on ne l'initialise pas à 0 mais à 4
// création de quelques JOptionpane de type showMessagedialog qui énoncent la règle du jeu
//Object.=UIManager.get("OptionPane.background");
UIManager.getColor("blue");
//UIManager.get("Jframe.background");
UIManager.get("Panel.background");
UIManager.put("OptionPane.background", Color.cyan);
UIManager.put("Panel.background", Color.blue);
//UIManager.put("JFrame.background", Color.blue);
do{
try{
inputValue1 = JOptionPane.showInputDialog(null,"<html><body><center><FONT COLOR =\"YELLOW\"><FONT SIZE=5>Veuillez saisir un nombre de joueurs concurrents du joueur principal </FONT></FONT></body></center></html>","saisie du nombre de concurrents",JOptionPane.QUESTION_MESSAGE);
test_nb_joueurs(inputValue1);
//si la personne a saisi une chaîne de caractères, la fonction parseInt convertit du String(1,2,3...) en int
//ne pourra pas fonctionner et cela renvoit au catch.
nombre_joueurs=Integer.parseInt(inputValue1);//convertit en entier.
inputValue2 = JOptionPane.showInputDialog(null,"<html><body><center><FONT COLOR =\"YELLOW\"><FONT SIZE=5>Veuillez saisir votre nom</FONT></FONT></body></center></html> ","saisie du nom de l'initiateur de la partie ",JOptionPane.QUESTION_MESSAGE);
if(inputValue2==null){System.exit(0);}
if (inputValue2.equals("") || inputValue2.equals(" ") ) throw new champ_de_saisie_vide();
test_caracteres_a_z_A_Z(inputValue2);
//if (inputValue2.matches("[a-zA-Z[ \t]]*")==false)throw new test_caracteres_az();
System.out.println("la chaine "+inputValue2+" ne contient que les caractères alphabétiques de a à z ou de A à Z ou des espaces" );
nom_lanceur_partie=inputValue2;
inputValue3=JOptionPane.showInputDialog(null, "<html><body><center><FONT COLOR =\"YELLOW\"><FONT SIZE=5>Veuillez saisir un nombre de cartes compris entre 1 et 5</FONT></FONT></body></center>", "saisie du nombre de cartes", JOptionPane.QUESTION_MESSAGE);
test_nb_cartes(inputValue3);
nbre_cartes_tirees=Integer.parseInt(inputValue3);//
Partie Partie1 = new Partie(nombre_joueurs, nom_lanceur_partie, nbre_cartes_tirees);//ce sont les paramètres du constructeur
Partie1.jouer();//appel de la méthode jouer de la classe partie
Partie1.affichergagnant();
}//fin de try
catch(NumberFormatException NFex) //type et nom
{
JOptionPane.showMessageDialog(null, "<html><body><center><FONT COLOR =\"YELLOW\"><FONT SIZE=5> Vous avez saisi une valeur non numérique! </FONT></FONT></body></center>" ,"type d'erreur commise", JOptionPane.ERROR_MESSAGE);
//null:s'affiche au milieu de la fenêtre parente par défaut cad l'écran. TITRE ICONE
}
catch(champ_de_saisie_vide csv) //type et nom
{
//csv.annoncererreur();
champ_de_saisie_vide.annoncererreur();
}
catch(Exception ex) //ex est une variable de la classe exception qui va contenir l'adresse de l'erreur pour pointer dessus.
{
//JOptionPane.showMessageDialog(null, "<html><body><center><FONT COLOR =\"YELLOW\"><FONT SIZE=5>Vous avez commis ce type d'erreur </FONT></FONT></body></center></html>" +ex.toString() ,"type d'erreur commise", JOptionPane.ERROR_MESSAGE);
JOptionPane.showMessageDialog(null,"<html><body><center><FONT COLOR =\"YELLOW\"><FONT SIZE=5>Vous avez commis ce type d'erreur " +ex.toString()+"</FONT></FONT></body></center></html>" ,"type d'erreur commise", JOptionPane.ERROR_MESSAGE);
//dans la classe exception qui est une classe de java il y a la méthode toString qui ramène le msg d'erreur
//de type string.
}// fin de catch
finally {if (temp!=1){
temp = JOptionPane.showConfirmDialog(null,"<html><body><center><FONT COLOR =\"YELLOW\"><FONT SIZE=5>Voulez vous faire une autre partie?</FONT></FONT></body></center></html>", "Rejouer ou pas", JOptionPane.YES_NO_OPTION);}// fin if
System.out.println("la valeur de temp est "+temp);
}// fin de finally
}//fin de do
while (temp ==JOptionPane.YES_OPTION ); //on effectue le code qu'il y a dans le do tant que temp=0 cad qu'on a cliqué sur OK.
}// fin de main
} |
Partager