Re: Jeu de blackjack en java
En fait, mélanger le jeu de cartes est super facile mais je n'arrive vraiment pas à ne pas tirer 2 fois la même carte puisque je veux pouvoir accès à la valeur de la carte, il faut je pense qe mes cartes soient stocké quelque part mais je suis vraiment largués!!
VOici ma fonction pour mélanger :
package blackjack;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import javax.swing.JOptionPane;
public class Deck {
Card carddeck[];
int currentCard=-1;;
private List list;
private List cardchosenlist; //nom a changer !!!!!!!!!!!!!!!!!!!!!!!
int cardcreated = 0;
//*****************************************
// Constructor
//*****************************************
public Deck() {
initiateDeck();
}
public void initiateDeck() {
carddeck = new Card[52];
int color = 0;
int value = 0;
for(color=0;color<4;color++)
for(value=1;value<14;value++)
{
carddeck[cardcreated]=new Card(value,color);
//*********************************************
// Affichage jeu de carte dans l'ordre :
// System.out.println(carddeck[cardcreated]);
//*********************************************
cardcreated++;
}
Shuffle();
/* for(cardcreated=0;color<53;color++){
System.out.println(carddeck[cardcreated]);
cardcreated++;
}*/
}
//mélanger le jeu de carte :
public void Shuffle() {
list=Arrays.asList(carddeck);
Collections.shuffle(list);
}
public void printCards() {
for (int i = 0; i <= list.size(); i++) {
System.out.println( list.get(i));
}
}
int cardchose=0;
// Choose one card :
//***********************************
public void dealCard(int choosecard){
//for(int i=0;i<choosecard;i++){
for(int i=1;i<choosecard+1;i++){
list.get(i);
System.out.println(list.get(i));
cardchosenlist.add(list.get(i));
}
//return chosencard;
//return cardchosen;
// if(cardchosenlist.isEmpty())
// System.out.println("liste vide");
//try{
/*if(cardchosenlist.isEmpty()){
cardchoisis.add(list.get(choosecard));
System.out.println( "size = 0");
}
else
for(int i=0;i< cardchosenlist.size();i++)
if(list.get(choosecard).equals(cardchosenlist.get(i)))
{
dealCard(choosecard);
System.out.println( "size = 0");
}
else
{
cardchoisis.add(list.get(choosecard));
System.out.println( "size = 0");
}
}
System.out.println(list.get(choosecard));
// samecard;
list.remove(choosecard);
printCards();*/
}
}
***************************
package blackjack;
public class Card {
private int colorcard;
private int valuecard;
//*****************************************
// Constructor
//*****************************************
public Card(int value,int color) {
this.colorcard = color;
this.valuecard = value;
}
public int getColor() {
// Return the int that codes for this card's suit.
return colorcard;
}
public int getValue() {
// Return the int that codes for this card's value.
return valuecard;
}
public String transferColor() {
switch (colorcard) {
case 0:
return "Spades"; //pique
case 1:
return "Hearts"; //coeur
case 2:
return "Diamonds"; //carreau
case 3:
return "Clubs"; //trefle
}
return "0";
}
public String transferValue() {
switch (valuecard) {
case 1:
return "Ace";
case 2:
return "2";
case 3:
return "3";
case 4:
return "4";
case 5:
return "5";
case 6:
return "6";
case 7:
return "7";
case 8:
return "8";
case 9:
return "9";
case 10:
return "10";
case 11:
return "Jack"; //valet
case 12:
return "Queen"; //dame
case 13:
return "King"; //roi
}
return "0";
}
public String toString(){
String value=transferValue();
String color=transferColor();
StringBuffer buffer=new StringBuffer(value+" of "+color);
buffer.setLength(20);
return (buffer.toString()); }
}
//cardchoisis.add(list.get(i)); mais cette ligne ne marche pas du tout!!
Ou alors une autre solution mais que je sais pas non plus comment la réaliser c'est de ne stocker que ka valeur de la carte dans un tableau mais c'est nulle comme idées puisque 2 cartes peuvent avoir la même valeur
merci de votre aide parce que là, j'ai vraiment chercher et le seul truc que j'arrive à faire c'est prendre 3 cartes de mon jeu et afficher leur valeur dans la console!!
J'ai aussi une question comment se fait -t-il que dans mon fichier principal ou j'ai le design pour appeler une fonction il faut que j'écrive : new Deck().dealCard(3); et non pas avec une variable de type Deck???
Merci!!!!! :D
En fait, mélanger le jeu de cartes est super facile mais je n'arrive vraiment pas à ne pas tirer 2 fois la même carte puisque je veux pouvoir accès à la valeur de la carte, il faut je pense qe mes cartes soient stocké quelque part mais je suis vraiment largués!!
VOici ma fonction pour mélanger :
***************************
//cardchoisis.add(list.get(i)); mais cette ligne ne marche pas du tout!!
Ou alors une autre solution mais que je sais pas non plus comment la réaliser c'est de ne stocker que ka valeur de la carte dans un tableau mais c'est nulle comme idées puisque 2 cartes peuvent avoir la même valeur
merci de votre aide parce que là, j'ai vraiment chercher et le seul truc que j'arrive à faire c'est prendre 3 cartes de mon jeu et afficher leur valeur dans la console!!
J'ai aussi une question comment se fait -t-il que dans mon fichier principal ou j'ai le design pour appeler une fonction il faut que j'écrive : new Deck().dealCard(3); et non pas avec une variable de type Deck???
Merci!!!!! :D