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 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208
|
import java.io.*;
import java.util.*;
import javax.swing.*;
public class Partie {
int nbreJoueur;// déclaration de la variable nbreJoueur de type int
Joueur [] tabJoueur;// déclaration dun tableau de nom tabJoueur qui contient des éléments de type Joueur
Joueur croupier ;// déclaration de la variable croupier de type Joueur
JFrame JF1 ;
JOptionPane jop1;
String texte_final="";
Partie(int nbre, String nomJPrincipal){
this.nbreJoueur = nbre;
this.tabJoueur= new Joueur[nbre];
this.croupier = new Joueur("croupier");
this.tabJoueur[0] = new Joueur(nomJPrincipal);
for(int i=1; i<= tabJoueur.length-1;i++){
tabJoueur[i]= new Joueur("Joueur" + i);
}// fin de boucle for
}// fin de constructeur de la classe Partie
public void tirageInitial(){
//texte_final="";
for(int i =0; i<= tabJoueur.length-1;i++){
tabJoueur[i].tirageUnJoueur();
this.texte_final = this.texte_final + tabJoueur[i].texte_final_joueur +"\n";
System.out.println( tabJoueur[i].texte_final_joueur);
}// fin de for
croupier.tirageUnJoueur();
texte_final= texte_final+this.croupier.texte_final_joueur+"\n";
System.out.println(texte_final);
JOptionPane.showMessageDialog(null," "+ this.texte_final,"affichage des joueurs et des scores", JOptionPane.CLOSED_OPTION);
}// fin de méthode tirageInitial
public void jouer(){
this.tirageInitial();
}
public void affichergagnant(){
int i ;
int max_tabJoueur_points_obtenus= this.tabJoueur[0].totalPoint;
int index_maximum_total_points_1=0;
//on est obligé d'initialiser à 1 la valeur de cetre variable pour qu'elle puisse passer à
//2 dès qu'il y aura deux joueurs qui obtiendront le même nombre de points
int nbre_joueurs_execaux=1;
// boucle for qui parcourt le tableau tabJoueur de la partie en cours pour déterminer
//le joueur qui a obtenu le plus de points
for(i=1;i<this.tabJoueur.length;i++ ){
if(this.tabJoueur[i].totalPoint> max_tabJoueur_points_obtenus)
{
max_tabJoueur_points_obtenus=this.tabJoueur[i].totalPoint;
//on retient l'index de l'élément pour lequel on a obtenu le nombre maximum de points
index_maximum_total_points_1=i;
//Si auparavant il y eu des execaux , le fait qu'il existe un nombre de points supérieur
//à celui des joueurs execaux annule le fait qu'il y ait des execaux
//et la variable nbre_joueurs_execaux est réinitialisée à sa valeur première
nbre_joueurs_execaux=1;
System.out.println(nbre_joueurs_execaux);
}// fin de if this.tabJoueur[i].totalPoint> max_tabJoueur_points_obtenus
// si on est dans le cas où le joueur courant a un nombre de points
//==max_tabJoueur_points_obtenus
//
else if (this.tabJoueur[i].totalPoint== max_tabJoueur_points_obtenus)
{
nbre_joueurs_execaux++;
System.out.println(nbre_joueurs_execaux);
}// fin de else if
}//fin de boucle for
//1er cas : s'il n'y a pas de joueurs execaux(nbre_execaux==1) et si le nombre de points maximum du tableau est > nombre de points du croupier
//le gagnant est donc le joeur qui se trouve à l'index index_maximum_total_points_1 du tableau
if (nbre_joueurs_execaux==1 && max_tabJoueur_points_obtenus>this.croupier.totalPoint)
{JOptionPane.showMessageDialog(null,"le gagnant de la partie est "+this.tabJoueur[index_maximum_total_points_1].nom + " avec "+ this.tabJoueur[index_maximum_total_points_1].totalPoint+ " points","résultat de la partie", JOptionPane.CLOSED_OPTION);
}// fin de if if (nbre_joueurs_execaux==1 && max_tabJoueur_points_obtenus>this.croupier.totalPoint)
//2eme cas :quelque soit le nombre de joueurs execaux (nbre_execaux==1) dans le tableau
//et si le nombre de points maximum du tableau est < nombre de points du croupier
else if ( max_tabJoueur_points_obtenus<this.croupier.totalPoint)
{JOptionPane.showMessageDialog(null,"le gagnant de la partie est le croupier avec "+this.croupier.totalPoint+ " points "," résultat de la partie", JOptionPane.CLOSED_OPTION);
}// fin de if if ( max_tabJoueur_points_obtenus<this.croupier.totalPoint)
else if (nbre_joueurs_execaux==1 && max_tabJoueur_points_obtenus==this.croupier.totalPoint)
{
JOptionPane.showMessageDialog(null,"il n' y a pas de gagnant car le croupier et le joueur "+this.tabJoueur[index_maximum_total_points_1].nom + " sont à égalité", "résultat de la partie", JOptionPane.CLOSED_OPTION);
}
// si le nombre de joueurs execaux est > 2( nbre_joueurs_execaux>2)et max_tabJoueur_points_obtenus est > au nombre total de points du croupier(this.croupier.totalPoint)
//alors la partie n'a pas de gagnant
else if (nbre_joueurs_execaux>=2 && max_tabJoueur_points_obtenus>this.croupier.totalPoint)
{
//System.out.println("il ya trop de joueurs execaux, cette partie n' a pas de gagnant");
JOptionPane.showMessageDialog(null,"il y a " +nbre_joueurs_execaux+" joueurs execaux, cette partie n' a pas de gagnant","résultat de la partie", JOptionPane.CLOSED_OPTION);
}// fin de if (nbre_joueurs_execaux>2 && max_tabJoueur_points_obtenus>this.croupier.totalPoint)
// si le nombre d'execaux est >= 2 et que le contenu de la variable
//max_tabJoueur_points_obtenus est < nombre total de points du croupier
// dans le cas où nbre_joueurs_execaux>=2 et max_tabJoueur_points_obtenus=this.croupier.totalPoint)
else if (nbre_joueurs_execaux>=2 && max_tabJoueur_points_obtenus==this.croupier.totalPoint)
{//System.out.println("il y a " +nbre_joueurs_execaux+" joueurs execaux et la partie n'a pas de gagnant");
JOptionPane.showMessageDialog(null,"il y a " +nbre_joueurs_execaux + " joueurs execaux et la partie n'a pas de gagnant","résultat de la partie", JOptionPane.CLOSED_OPTION);
}//fin de if (nbre_joueurs_execaux>=2 && max_tabJoueur_points_obtenus==this.croupier.totalPoint)
}// fin de afficher gagnant
public static void main(String[] args) {
int temp=4;
do{
try{
String inputValue1 = JOptionPane.showInputDialog("Veuillez saisir un nombre de joueurs" );
//int temp1=0;//=JOptionPane.showInputDialog(null, "Veuillez saisir un nombre de joueurs", "saisie",JOptionPane.CLOSED_OPTION );
/*if (temp1 ==JOptionPane.CANCEL_OPTION){
System.exit(0);
}*/
int nombre_joueurs=Integer.parseInt(inputValue1);
String inputValue2 = JOptionPane.showInputDialog("Veuillez saisir un nom de joueur principal" );
String nom_joueur_principal=inputValue2;
Partie Partie1 = new Partie(nombre_joueurs, nom_joueur_principal);
Partie1.jouer();
Partie1.affichergagnant();
temp = JOptionPane.showConfirmDialog(null, "Voulez vous faire une autre partie?", "Rejouer ou pas", JOptionPane.YES_NO_OPTION);
}// fin de try
catch(Exception ex)
{
System.out.println(ex);
System.out.println(ex.toString());
System.out.println(ex.getMessage());
}// fin de catch
}// fin de do
while (temp ==JOptionPane.YES_OPTION );
}// fin de main
}// fin de classe Partie.java |
Partager