enum COULEUR {COEUR, CARREAU, PIQUE, TREFLE};
public class Carte{
// Variables de class
static public final String[] NOMS_COULEURS = {"Coeur", "Carreau", "Pique", "Trefle"};
static public final String[] NOMS_RANGS = {"Joker", "As", "2", "3", "4",
"5", "6", "7", "8", "9", "10", "Valet", "Dame", "Roi"};
// Variables d'instance
private final COULEUR couleur;
private final int rang;
private final int force;
// Partie méthodes
}
Dans ce code, les variable de classe (attachées à la classe) se distinguent par l'usage du mot réservé static. Elles sont utilisées ici pour définir des constantes utiles dans les jeux de cartes. Les tableaux NOMS_COULEURS et NOMS_RANGS serviront à former des chaînes de caratères destinées à l'affichage de cartes. Contrairement aux variables d'instances (relative à un objet), elles sont utilisables en référant à la classe où elles sont définies.
Les énumérations de Java (type enum) permettent de définir des constantes littérales qui pourront être utilisés dans les programmes. Par exemple, le type enum COULEUR définit les littéraux COEUR, CARREAU, PIQUE, TREFLE qui serviront à coder les couleurs des cartes.
Les variable d'instance (attachées à l'objet this ) permettent de définir une carte par sa couleur, son rang et sa force. Le rang suit l'ordre du tableau NOMS_RANGS.
Le rang des cartes suit l'ordre du tableau NOMS_RANGS. La force représente la valeur relative d'une carte par rapport aux autres. Une carte l'emporte sur une autre si et seulement si elle est plus forte. Les force doivent être définies en fonction des jeux. Elles permettent de définir un ordre particulier pour un jeu (par exemple, l'As peut avoir une force supérieure au Roi dans certains jeux). Par défaut, la force est égale au rang.
Comme toutes les données qui définissent une carte sont supposées constantes au cours du jeu, les variables d'instances sont déclarées final et doivent être initialisées dans les constructeurs.
public Carte (COULEUR couleur, int rang)
public Carte (COULEUR couleur, int rang, int force)
public COULEUR getCouleur ()
public int getRang ()
public int getForce ()
public String getNomCouleur ()
public String getNomRang ()
public String getNomComplet ()
9 de Coeur Dame de Carreau Joker 10 de Trefle
import java.util.ArrayList;
public class JeuCartes{
// Variable d'instance: un tableau des cartes
private ArrayList jeu;
// Partie méthodes
}
Pour utiliser la classe pré-définie ArrayList avec ses
méthodes, nous avons importé le paquetage ArrayList
de Java API. Maintenant, nous allons construire cette classe afin de joueur aux
jeux de cartes.
private JeuCartes()
private boolean addCarte (Carte c)
private void addAllCartes(int rangDebut, int rangFin, COULEUR couleur)
public String jeuToStringComplet()
static public JeuCartes createJeuCartes(boolean forceAS)
Jeu de 52 cartes : [As de Pique, 2 de Pique, 3 de Pique, 4 de Pique, 5 de Pique, 6 de Pique, 7 de Pique, 8 de Pique, 9 de Pique, 10 de Pique, Valet de Pique, Dame de Pique, Roi de Pique, As de Coeur, 2 de Coeur, 3 de Coeur, 4 de Coeur, 5 de Coeur, 6 de Coeur, 7 de Coeur, 8 de Coeur, 9 de Coeur, 10 de Coeur, Valet de Coeur, Dame de Coeur, Roi de Coeur, As de Carreau, 2 de Carreau, 3 de Carreau, 4 de Carreau, 5 de Carreau, 6 de Carreau, 7 de Carreau, 8 de Carreau, 9 de Carreau, 10 de Carreau, Valet de Carreau, Dame de Carreau, Roi de Carreau, As de Trefle, 2 de Trefle, 3 de Trefle, 4 de Trefle, 5 de Trefle, 6 de Trefle, 7 de Trefle, 8 de Trefle, 9 de Trefle, 10 de Trefle, Valet de Trefle, Dame de Trefle, Roi de Trefle]
public void melangeJeu()
public void insererCarteTalon (Carte c)
public Carte getUneCarteTalon (boolean extrait)
public Carte[] getCartesTalon (int nbCartesm booleqn extrait)
public boolean estVide()
Pour tout commentaire : thang [arobase] ibisc [point] fr