comments for every function + final credits
This commit is contained in:
parent
950637358c
commit
f83f9fd963
1 changed files with 59 additions and 0 deletions
59
blackjack.c
59
blackjack.c
|
@ -1,3 +1,12 @@
|
||||||
|
/* -- PROJET DE FIN DE SEMESTRE --
|
||||||
|
Université Paris 8
|
||||||
|
Mars - Avril 2021
|
||||||
|
L1Z - Informatique - Département STN
|
||||||
|
|
||||||
|
Ce projet a été développé dans le cadre de l'UE "Outils informatiques collaboratifs" avec Mme. Françoise Balmas
|
||||||
|
|
||||||
|
Anri Kennel - Felipe Pereira Manfrin - Kévin Martins Da Veiga - William Nizet */
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
@ -9,15 +18,24 @@
|
||||||
#include <time.h> // fonction time
|
#include <time.h> // fonction time
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
//on utilise une int array pour stocker toutes les cartes du jeu
|
||||||
|
//au fur et à mesure que les cartes sont distribuées, on enlève ces-là du tableau
|
||||||
int cards[53] = {1,2,3,4,5,6,7,8,9,10,11,12,13,
|
int cards[53] = {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,
|
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,
|
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};
|
40,41,42,43,44,45,46,47,48,49,50,51,52};
|
||||||
|
|
||||||
|
|
||||||
|
//chaque joueur ainsi que le croupier sont représentés par une int array
|
||||||
|
//chaque nouvelle carte reçue est additionnée à la liste correspondante
|
||||||
int player1[10];
|
int player1[10];
|
||||||
int player2[10];
|
int player2[10];
|
||||||
int dealer[10];
|
int dealer[10];
|
||||||
|
|
||||||
|
|
||||||
|
//les fonctions suivantes servent à vérifier le système d'exploitation de l'utilisateur
|
||||||
|
//les intéractions sont légèrement différentes à dépendre du système
|
||||||
int isWindows() {
|
int isWindows() {
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -44,6 +62,9 @@ int clearUserScreen() {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//pour avoir la valeur réelle d'une carte, on utilise la fonction real_value (toutes cartes valent quelque chose entre 1 et 13)
|
||||||
|
//dans notre version du jeu, l'As vaut toujours 1 point et les cartes J,Q,K valent toutes 10 points chaque
|
||||||
int real_value(int nb) {
|
int real_value(int nb) {
|
||||||
if (nb == 1 || nb == 14 || nb == 27 || nb == 40) {
|
if (nb == 1 || nb == 14 || nb == 27 || nb == 40) {
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -76,6 +97,8 @@ int real_value(int nb) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//cette fonction sort la couleur de la carte
|
||||||
|
//on utilise des charactères génériques pour chaque couleur -> '*', '#', '&', '$'
|
||||||
char real_color(int nb) {
|
char real_color(int nb) {
|
||||||
if (nb >= 1 && nb <= 13) {
|
if (nb >= 1 && nb <= 13) {
|
||||||
return '*';
|
return '*';
|
||||||
|
@ -88,6 +111,9 @@ char real_color(int nb) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//cette fonction vérifie la somme cumullé de la personne
|
||||||
|
//si la somme est <= 21, le joueur peut décider de continuer à tourner des cartes ou pas
|
||||||
|
//si la somme est > 21, le joueur a perdu automatiquement
|
||||||
int victory(int sum) {
|
int victory(int sum) {
|
||||||
if (sum <= 21) {
|
if (sum <= 21) {
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -98,6 +124,9 @@ int victory(int sum) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//la fonction suivante dessine la carte
|
||||||
|
//elle prend la valeur de la carte et sa couleur
|
||||||
|
//des modifications ont été faites pour l'affichages des As,Js,Qs et Ks.
|
||||||
void draw_card(int value, char couleur) {
|
void draw_card(int value, char couleur) {
|
||||||
if (value == 1 || value == 14 || value == 27 || value == 40) {
|
if (value == 1 || value == 14 || value == 27 || value == 40) {
|
||||||
printf(" -----------\n");
|
printf(" -----------\n");
|
||||||
|
@ -107,6 +136,7 @@ void draw_card(int value, char couleur) {
|
||||||
printf("| |\n");
|
printf("| |\n");
|
||||||
printf("| |\n");
|
printf("| |\n");
|
||||||
printf("| |\n");
|
printf("| |\n");
|
||||||
|
printf("| |\n");
|
||||||
printf("| A %c|\n",couleur);
|
printf("| A %c|\n",couleur);
|
||||||
printf(" -----------\n\n");
|
printf(" -----------\n\n");
|
||||||
} else if (value == 11 || value == 24 || value == 37 || value == 50) {
|
} else if (value == 11 || value == 24 || value == 37 || value == 50) {
|
||||||
|
@ -117,6 +147,7 @@ void draw_card(int value, char couleur) {
|
||||||
printf("| |\n");
|
printf("| |\n");
|
||||||
printf("| |\n");
|
printf("| |\n");
|
||||||
printf("| |\n");
|
printf("| |\n");
|
||||||
|
printf("| |\n");
|
||||||
printf("| J %c|\n",couleur);
|
printf("| J %c|\n",couleur);
|
||||||
printf(" -----------\n\n");
|
printf(" -----------\n\n");
|
||||||
} else if (value == 12 || value == 25 || value == 38 || value == 51) {
|
} else if (value == 12 || value == 25 || value == 38 || value == 51) {
|
||||||
|
@ -127,6 +158,7 @@ void draw_card(int value, char couleur) {
|
||||||
printf("| |\n");
|
printf("| |\n");
|
||||||
printf("| |\n");
|
printf("| |\n");
|
||||||
printf("| |\n");
|
printf("| |\n");
|
||||||
|
printf("| |\n");
|
||||||
printf("| Q %c|\n",couleur);
|
printf("| Q %c|\n",couleur);
|
||||||
printf(" -----------\n\n");
|
printf(" -----------\n\n");
|
||||||
} else if (value == 13 || value == 26 || value == 39 || value == 52) {
|
} else if (value == 13 || value == 26 || value == 39 || value == 52) {
|
||||||
|
@ -137,6 +169,7 @@ void draw_card(int value, char couleur) {
|
||||||
printf("| |\n");
|
printf("| |\n");
|
||||||
printf("| |\n");
|
printf("| |\n");
|
||||||
printf("| |\n");
|
printf("| |\n");
|
||||||
|
printf("| |\n");
|
||||||
printf("| K %c|\n",couleur);
|
printf("| K %c|\n",couleur);
|
||||||
printf(" -----------\n\n");
|
printf(" -----------\n\n");
|
||||||
} else {
|
} else {
|
||||||
|
@ -147,17 +180,22 @@ void draw_card(int value, char couleur) {
|
||||||
printf("| |\n");
|
printf("| |\n");
|
||||||
printf("| |\n");
|
printf("| |\n");
|
||||||
printf("| |\n");
|
printf("| |\n");
|
||||||
|
printf("| |\n");
|
||||||
printf("| %2d %c|\n",real_value(value),couleur);
|
printf("| %2d %c|\n",real_value(value),couleur);
|
||||||
printf(" ------------\n\n");
|
printf(" ------------\n\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int main() {
|
int main() {
|
||||||
int i = 0, card_acc, acc = 2, init_dsum;
|
int i = 0, card_acc, acc = 2, init_dsum;
|
||||||
int res_p1, sum1 = 0;
|
int res_p1, sum1 = 0;
|
||||||
int res_p2, sum2 = 0;
|
int res_p2, sum2 = 0;
|
||||||
|
|
||||||
|
|
||||||
|
//les règles sont précisées ci-dessous
|
||||||
printf("Welcome to BLACKJACK !\n");
|
printf("Welcome to BLACKJACK !\n");
|
||||||
waitUser();
|
waitUser();
|
||||||
|
|
||||||
|
@ -174,6 +212,7 @@ int main() {
|
||||||
waitUser();
|
waitUser();
|
||||||
clearUserScreen();
|
clearUserScreen();
|
||||||
|
|
||||||
|
//le jeu commence ici
|
||||||
printf("The game begins in...\n");
|
printf("The game begins in...\n");
|
||||||
printf("3\n");
|
printf("3\n");
|
||||||
sleep(1);
|
sleep(1);
|
||||||
|
@ -183,6 +222,7 @@ int main() {
|
||||||
sleep(1);
|
sleep(1);
|
||||||
clearUserScreen();
|
clearUserScreen();
|
||||||
|
|
||||||
|
//les 2 premières cartes du croupier sont ici
|
||||||
srand(time(NULL));
|
srand(time(NULL));
|
||||||
dealer[0] = (rand() % 52) + 1;
|
dealer[0] = (rand() % 52) + 1;
|
||||||
|
|
||||||
|
@ -203,6 +243,7 @@ int main() {
|
||||||
waitUser();
|
waitUser();
|
||||||
clearUserScreen();
|
clearUserScreen();
|
||||||
|
|
||||||
|
//les 2 premières cartes de chaque joueur sont ici
|
||||||
printf("Each player will now receive their two first initial cards :\n\n");
|
printf("Each player will now receive their two first initial cards :\n\n");
|
||||||
sleep(2);
|
sleep(2);
|
||||||
|
|
||||||
|
@ -265,6 +306,7 @@ int main() {
|
||||||
waitUser();
|
waitUser();
|
||||||
clearUserScreen();
|
clearUserScreen();
|
||||||
|
|
||||||
|
//ici, le joueur 1 peut tirer d'autres cartes ou continuer avec sa main initiale
|
||||||
printf("Player 1, you can now choose either to turn more cards up or to keep your current values :\n\n");
|
printf("Player 1, you can now choose either to turn more cards up or to keep your current values :\n\n");
|
||||||
sleep(2);
|
sleep(2);
|
||||||
|
|
||||||
|
@ -326,12 +368,15 @@ int main() {
|
||||||
printf("\n");
|
printf("\n");
|
||||||
printf("You decided to keep your current values. You can no longer have more cards. Your final score is : %d\n", sum1);
|
printf("You decided to keep your current values. You can no longer have more cards. Your final score is : %d\n", sum1);
|
||||||
}
|
}
|
||||||
|
if(isWindows() == 1) getchar();
|
||||||
waitUser();
|
waitUser();
|
||||||
clearUserScreen();
|
clearUserScreen();
|
||||||
|
|
||||||
|
//ré-initialisation de quelques variables
|
||||||
i = 0;
|
i = 0;
|
||||||
acc = 2;
|
acc = 2;
|
||||||
|
|
||||||
|
//ici, le joueur 2 peut tirer d'autres cartes ou continuer avec sa main initiale
|
||||||
printf("Player 2, you can now choose either to turn more cards up or to keep your current values :\n\n");
|
printf("Player 2, you can now choose either to turn more cards up or to keep your current values :\n\n");
|
||||||
sleep(1);
|
sleep(1);
|
||||||
|
|
||||||
|
@ -393,11 +438,15 @@ int main() {
|
||||||
printf("\n");
|
printf("\n");
|
||||||
printf("You decided to keep your current values. You can no longer have more cards. Your final score is : %d\n", sum2);
|
printf("You decided to keep your current values. You can no longer have more cards. Your final score is : %d\n", sum2);
|
||||||
}
|
}
|
||||||
|
if(isWindows() == 1) getchar();
|
||||||
waitUser();
|
waitUser();
|
||||||
clearUserScreen();
|
clearUserScreen();
|
||||||
|
|
||||||
acc = 2;
|
acc = 2;
|
||||||
|
|
||||||
|
//on a le tour du croupier ici
|
||||||
|
//si sa main est <= 16, il va tirer d'autres cartes jusqu'au moment où il aura > 16 points
|
||||||
|
//s'il dépasse 21 points, tout le monde qui n'a pas fait plus de 21 points antérieurement gagne
|
||||||
printf("-- THIS IS THE DEALER'S TURN --\n\n");
|
printf("-- THIS IS THE DEALER'S TURN --\n\n");
|
||||||
sleep(2);
|
sleep(2);
|
||||||
|
|
||||||
|
@ -496,5 +545,15 @@ int main() {
|
||||||
|
|
||||||
waitUser();
|
waitUser();
|
||||||
|
|
||||||
|
printf("-- PROJET DE FIN DE SEMESTRE --\n\n");
|
||||||
|
printf("Université Paris 8\n");
|
||||||
|
printf("Mars - Avril 2021\n");
|
||||||
|
printf("L1-Z Informatique -- Département STN\n");
|
||||||
|
printf("Anri Kennel - Felipe Pereira Manfrin - Kévin Martins Da Veiga - William Nizet\n\n");
|
||||||
|
|
||||||
|
printf("Ce projet a été développé dans le cadre de l'UE 'Outils informatiques collaboratifs' avec Mme. Françoise Balmas");
|
||||||
|
|
||||||
|
waitUser();
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Reference in a new issue