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
| int sabot[] = new int[312];
// Nombre de cartes dans le sabot (6 jeux de 52 cartes).
int[]mainJoueur = new int[10];
// Cartes du joueur.
int[]mainCroupier = new int[10];
// Cartes du croupier.
void remplirSabot() {
for (int i = 0; i < 312; i = i + 1) {
sabot[i] = i;
}
}
void init() {
//Mise des valeurs de toutes les cartes a -1 car la valeur 0 represente l'as.
for (int k = 0; k <= 9; k ++) {
mainJoueur[k] = - 1;
mainCroupier[k] = - 1;
}
}
void tirage1Croup() {
// Le croupier tire une 1ere Carte
mainCroupier[0] = tirerCarte();
println("Carte du croupier : " + nomCarte(mainCroupier[0]));
//println(" Points : " + valeurCarte(mainCroupier[0]));
}
int tirerCarte() {
// Cette fonction est la fonction qui nous sert à tirer une carte
int carteTiree = random(0, 312);
if (sabot[carteTiree] == - 1) {
tirerCarte();
}
sabot[carteTiree] = - 1;
//println(carteTiree);
return carteTiree;
}
String nomCarte(int numero) {
int numero1 = numero % 52;
int numeroCarte = numero1 % 13;
int couleurCarte = numero1 / 13;
String hauteur = Integer.toString(numeroCarte + 1);
// Initialisation de chaque numero à sa hauteur
String couleur = "";
// Initialisation de chaque numero à sa couleur
if (numeroCarte == 0) {
hauteur = "As";
}
if (numeroCarte == 10) {
hauteur = "V";
}
if (numeroCarte == 11) {
hauteur = "Q";
}
if (numeroCarte == 12) {
hauteur = "R";
}
if (couleurCarte == 0) {
couleur = "T";
}
if (couleurCarte == 1) {
couleur = "K";
}
if (couleurCarte == 2) {
couleur = "C";
}
if (couleurCarte == 3) {
couleur = "P";
}
return (hauteur + couleur);
}
int valeurCarte(int numero) {
// Attribution des valeurs de chaque cartes
int numero1 = numero % 52;
int valeurCarte = numero1 % 13;
int valeur = 0;
if (valeurCarte <= 9) {
// Cartes du 2 au 10
valeur = valeurCarte + 1;
}
if (valeurCarte == 0) {
// Carte de type As
valeur = 11;
}
if (valeurCarte >= 10) {
// Cartes de types Valet, Dame, Roi
valeur = 10;
}
return (valeur);
}
int totalPoints(int[]totalMain) {
// Définition de la variable "totalPoints" correspondant à la somme de points de toutes les cartes tirées
int valeurTotaleMain = 0;
for (int i =0; i <10; i ++) {
valeurTotaleMain = valeurTotaleMain + valeurCarte(totalMain[i]);
if (valeurTotaleMain == 21 && i ==1) {
// Si la somme des points des 2 premières est égale à 21, le joueur a "BlackJack"
println("BlackJack !");
}
}
return (valeurTotaleMain);
}
void compare() {
// Cette fonction nous sert à comparer le total de points du Joueur et du Croupier pour savoir qui a gagné
if (totalPoints(mainJoueur) > totalPoints(mainCroupier) && totalPoints(mainJoueur) <= 21) {
victoire();
} else {
if (totalPoints(mainJoueur) < totalPoints(mainCroupier) && totalPoints(mainCroupier) <= 21) {
defaite();
}
if (totalPoints(mainJoueur) == totalPoints(mainCroupier) && totalPoints(mainCroupier) <= 21 && totalPoints(mainJoueur) <= 21) {
egalite();
}
}
}
void defaite() {
println("Vous avez perdu.");
}
void victoire() {
// Ces 3 fonctions servent à afficher si l'on a gagné, perdu ou fait égalité
println("Vous avez gagné.");
}
void egalite() {
println("Il y a égalité.");
}
void jeuJoueur() {
// Dans cette fontion le joueur tire autant de cartes qui le souhaitent en plus des deux premieres
mainJoueur[0] = tirerCarte();
// Le joueur tire la 1ere Carte
println("Carte du joueur : " + nomCarte(mainJoueur[0]));
//println(" Points : " + valeurCarte(mainJoueur[0]));
mainJoueur[1] = tirerCarte();
// Le joueur tire lla 2eme Carte
println("Carte du joueur : " + nomCarte(mainJoueur[1]));
//println(" Points : " + valeurCarte(mainJoueur[1]));
println("Vous avez " + totalPoints(mainJoueur));
// Premier palier qui lui affiche son nombre de points après le tirage des 2 premieres cartes
String reponse = "oui";
// On propose alors au joueur de tirer autant de cartes qu'il le souhaite
reponse = readString("Voulez vous une autre carte ? (oui/non)");
int n = 2;
while (reponse.equals("oui")) {
mainJoueur[n] = tirerCarte();
println("Carte du joueur : " + nomCarte(mainJoueur[n]));
//println(" Points : " + valeurCarte(mainJoueur[n]));
n ++;
reponse = readString("Voulez vous une autre carte ? (oui/non)");
println("Vous avez " + totalPoints(mainJoueur));
}
if (totalPoints(mainJoueur) > 21) {
defaite();
println("NE PAS TENIR COMPTE DES LIGNES SUIVANTES");
// Problème : le programmme continue son execution et tire les cartes du croupier si le joueur a perdu
}
}
void jeuCroupier() {
// Le croupier tire une deuxieme Carte et autant de Cartes qui lui faut pour arriver à 17, nombre de points à partir duquel il doit s'arrêter
int n = 1;
while (totalPoints(mainCroupier) <= 16) {
mainCroupier[n] = tirerCarte();
println("Carte du croupier : " + nomCarte(mainCroupier[n]));
//println(" Points : " + valeurCarte(mainCroupier[n]));
n ++;
println("Le Croupier a : " + totalPoints(mainCroupier));
}
if (totalPoints(mainCroupier) > 21) {
victoire();
}
}
void main() {
// Execution du programme
remplirSabot();
init();
tirage1Croup();
jeuJoueur();
jeuCroupier();
compare();
} |
Partager