Bonjour,
Ta classe Deck me parait un peu compliquée pour ce qu'il y a à faire....
Je ne connais pas le blackJack, mais si ta classe Deck contient juste
une liste de cartes à mettre à jour, cela devrait suffire.
Si tu veux représenter les cartes en main des joueurs, il faudra après faire
une classe player avec la liste des cartes qu'ils ont tirés.
Je te propose une classe Deck mise à jour :
package bean;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Deck {
public List<Card> mCurrentCards;
// Initialisation de la liste de cartes
public Deck() {
mCurrentCards = new ArrayList<Card>();
}
// Methode statique permettant de construire un nouveau Deck
public static Deck buildNewDeck() {
Deck vResult = new Deck();
for (int i = 0; i < 4; i++) {
for (int j = 1; j < 14; j++) {
vResult.mCurrentCards.add(new Card(j, i));
}
}
Collections.shuffle(vResult.mCurrentCards);
return vResult;
}
// Pour mélanger les cartes, au cas ou
public void Shuffle() {
Collections.shuffle(mCurrentCards);
}
// Afficher le jeu
public void printDeck() {
for (Card vCurrentCard : mCurrentCards) {
System.out.println("Couleur : " + vCurrentCard.transferColor() +
" Valeur : " + vCurrentCard.transferValue());
}
}
// On tire la carte à l'index passée en paramètre
public Card dealCard(int pIndex) {
if (pIndex <= mCurrentCards.size()) {
Card vResult = mCurrentCards.get(pIndex - 1);
mCurrentCards.remove(pIndex - 1);
return vResult;
} else {
throw new RuntimeException("On ne peut pas tirer cette carte");
}
}
}
Ainsi que sa classe de test :
import bean.Card;
import bean.Deck;
public class TestDeck {
/**
* @param args
*/
public static void main(String[] args) {
Deck vDeck = Deck.buildNewDeck();
//vDeck.printDeck();
Card vCard_1 = vDeck.dealCard(1);
System.out.println(vCard_1);
Card vCard_2 = vDeck.dealCard(4);
System.out.println(vCard_2);
Card vCard_3 = vDeck.dealCard(6);
System.out.println(vCard_3);
Card vCard_4 = vDeck.dealCard(65);
System.out.println(vCard_4);
}
}
La classe Card n'est pas modifiée à part la suppression de :
StringBuffer buffer=new StringBuffer(value+" of "+color);
buffer.setLength(20);
dans la méthode toString() qui est inutile puisque Java alloue
automatiquement la taille qu'il faut à ton buffer. De plus sous
la sortie console Eclipse il affiche des caractères bizarres
puisque ta chaine ne fait pas 20 caractères.
J'ai par contre modifié les noms des packages.
Bonne chance,
Niroken
Bonjour,
Ta classe Deck me parait un peu compliquée pour ce qu'il y a à faire....
Je ne connais pas le blackJack, mais si ta classe Deck contient juste
une liste de cartes à mettre à jour, cela devrait suffire.
Si tu veux représenter les cartes en main des joueurs, il faudra après faire
une classe player avec la liste des cartes qu'ils ont tirés.
Je te propose une classe Deck mise à jour :
Ainsi que sa classe de test :
La classe Card n'est pas modifiée à part la suppression de :
dans la méthode toString() qui est inutile puisque Java alloue
automatiquement la taille qu'il faut à ton buffer. De plus sous
la sortie console Eclipse il affiche des caractères bizarres
puisque ta chaine ne fait pas 20 caractères.
J'ai par contre modifié les noms des packages.
Bonne chance,
Niroken