Bonjour,
Le code ci-dessous est celui d'une partie de jeu de cartes.
Il y a trois classes : joueur, partie et carte.
Le nombre de joueurs de la partie est sais par un utilisateur dans la variable
nbre_joueurs et un tableau tabJoueurs est crée avec un nombre d'éléments =nbre_joueurs
Le principe est le suivant :
Chaque joueur tire deux cartes .
Le nom et le score de chaque carte est affiché grâce à la fonction
affichejoueur de la classe joueur.
Il se trouve que l'affichage a lieu en console.
Je souhaite qu'il s'affiche dans un jEditorPane.
pour cela j'ai crée une frame JF1 qui contient ce JEditor pane appelé jep.
Dans la méthode tirageInitial de la classe Partie , qui propose de faire jouer chaque joueur du tableau tabJoueur, j'ai écrit le code de création de la frame et du jEditorPane.
J'ai crée une variable texte dans la classe joueur qui permet de récupérer le nom du joueur et son nombre total de points.
Je voudrais que le nom de chaque joueur s'affiche dans le jeditorpane avec son nombre total de points.
J'ai crée pour cela, dans la classe joueur une variable texte qui récupère ces informations.
Malheureusement, je ne vois pas affichés tous les scores les uns à la suite des autres.
Je ne vois que le dernier score s'afficher dans le jeditorpane.
Dois je créer un buffered reader pour ajouter les textes les uns aux autres et vois tous les scores affichés??
Existe il un composant moins difficile à gérerLe même problème se pose pour voir affichées les noms des cartes dans le jeditor pane
Pouvez vous m'aider à résoudre ce petit problème.
Je vous en remercie beaucoup à vous.
Voici les codes des différentes classes
voici le code de la classe joueur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 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 ; JEditorPane jep; 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 // cette méthode tiragInitial est appellé par la méthode jouer dont le code est juste en dessouspublic void tirageInitial(){ JF1 = new JFrame();// déclaration de la fenêtre qui contiendra le jEditor Pane jep // qui contiendra lui-même les scores des différents joueurs de la partie en cours jep = new JEditorPane(); JF1.getContentPane().add("Center", jep); for(int i =0; i<= tabJoueur.length-1;i++){ tabJoueur[i].tirageUnJoueur(); jep.setText(tabJoueur[i].texte); this.jep.setVisible(true); System.out.println(tabJoueur[i].texte); }// fin de for croupier.tirageUnJoueur();}// fin de méthode tirageInitial public void jouer(){ this.tirageInitial(); } public static void main(String[] args) { int temp=0; do{ try{ String inputValue1 = JOptionPane.showInputDialog("Veuillez saisir un nombre de joueurs"); 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); // c'est à partir d'ici que commence la partie: la méthode jouer appelle la méthode tirageInitial qui appelle la méthode tirercarte(2)pour chaque joueur Partie1.jouer(); temp = JOptionPane.showConfirmDialog(null, "Voulez vous faire une autre partie?", "Rejouer ou pas", JOptionPane.YES_NO_OPTION); if (temp ==JOptionPane.YES_OPTION ) { } }// fin de try catch(Exception ex) { JOptionPane.showMessageDialog(null,"vous avez fait une erreur de saisie " ,"résultat de la partie", JOptionPane.ERROR_MESSAGE); }// fin de catch } while (temp ==JOptionPane.YES_OPTION ); }// fin de main }// fin de classe Partie.java
Voici loe code de la classe Carte
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 /* * Created on 30 oct. 2008 * * TODO To change the template for this generated file go to * Window - Preferences - Java - Code Style - Code Templates */ /** * @author harbonne * * TODO To change the template for this generated type comment go to * Window - Preferences - Java - Code Style - Code Templates */ import java.awt.BorderLayout; import java.awt.FlowLayout; import java.io.* ; import java.lang.* ; import javax.swing.*; import javax.swing.JOptionPane; public class Joueur { String nom ; int Compte ; int nbreTirage ; Carte[] tabCarte ; int totalPoint ; String texte; Joueur(String n){ // constructeur de la classe Joueur this.nom = n ; if(this.nom=="croupier") { this.Compte=100; } else { this.Compte=10; } this.nbreTirage =0; this.tabCarte= new Carte[7]; this.totalPoint = 0; }// fin de constructeur de la classe Joueur public void tirerCarte(int n){ // méthode tirerCarte qui prend en argument un entier qui représente le nombre de carte tirées for(int i=1 ; i<= n ; i++) { tabCarte[nbreTirage]= Carte.choisirCarte(); this.totalPoint= this.totalPoint+tabCarte[nbreTirage].getPoint() ; nbreTirage++ ; }// fin de for }// fin de méthode tirerCarte public void tirageUnJoueur(){ // méthode tirageJoueur // qui appelle la méthode tirerCarte this.tirerCarte(2) ; this.afficherjoueur(); }// fin de méthode tirageUnJoueur public void afficherjoueur(){ // le nom de chaque joueur s'affiche en console // et j'aimerais qu'il s'affiche dans le jEditorPane System.out.println(this.nom); for(int i =0;i<=nbreTirage-1;i++) { tabCarte[i].afficherCarte(); } System.out.println(totalPoint); [COLOR="Greenst ce texte là que j'aimerais voir s'afficher dans le jEditorPane mais que cette variable contienne tous noms des joeurs de la partie en cours avec leur nombre tota de points[/COLOR] texte=""; texte = texte + "le joueur "+this.nom+ " a obtenu "+ this.totalPoint + " points "; }// fin de méthode afficherJoueur }// fin de classeVoici le code de la classe Carte
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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/* * Created on 30 oct. 2008 * * TODO To change the template for this generated file go to * Window - Preferences - Java - Code Style - Code Templates */ /** * @author harbonne * * TODO To change the template for this generated type comment go to * Window - Preferences - Java - Code Style - Code Templates */ import java.io.*; public class Carte { int couleur;// couleur de la carte du jeu(carreau, pique,coeur,trèfle) int figure;// figure de la carte tire de "As" à "Roi" static String[]nomCouleur = {"pique", "coeur","carreau","trefle"}; static String[]nomFigure = {"AS","deux","trois","quatre","cinq","six","sept","huit","neuf","dix","valet","dame","roi"}; // tableau nomFigure initialisé de éAs" à "Roi" Carte(int c, int f) { this.couleur = c; this.figure = f; } public int getPoint(){ if(this.figure>=10) {return 10; } else { return this.figure +1; } }// fin de méthode getPoint qui permet de connaître le nombre de pont que rappoete chaque carte public static Carte choisirCarte() { int c = (int) (Math.random()*4); int f = (int) (Math.random()*13); return new Carte(c,f); } public void afficherCarte() { System.out.println(nomFigure[figure]+ " de" +nomCouleur[couleur]); // c'est sont ces données que j'aimerais voir dans le jeditor pane } }// fin de classe Carte







Répondre avec citation
Partager