From ce3840106c3dd1c18703c2f86af8119e2a68d611 Mon Sep 17 00:00:00 2001 From: Felipe Date: Mon, 22 Mar 2021 22:22:53 +0100 Subject: [PATCH] bla bla bla --- blackjack.c | 470 ++++++++++++++++++++++++++++++++++++++++++++++++++ blackjack.exe | Bin 0 -> 60320 bytes 2 files changed, 470 insertions(+) create mode 100644 blackjack.c create mode 100644 blackjack.exe diff --git a/blackjack.c b/blackjack.c new file mode 100644 index 0000000..30b4922 --- /dev/null +++ b/blackjack.c @@ -0,0 +1,470 @@ +#include +#include +#include + +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, + 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}; + +int player1[10]; +int player2[10]; +int dealer[10]; + +int real_value(int nb) { + if (nb == 1 || nb == 14 || nb == 27 || nb == 40) { + return 1; + } else if (nb == 2 || nb == 15 || nb == 28 || nb == 41) { + return 2; + } else if (nb == 3 || nb == 16 || nb == 29 || nb == 42) { + return 3; + } else if (nb == 4 || nb == 17 || nb == 30 || nb == 43) { + return 4; + } else if (nb == 5 || nb == 18 || nb == 31 || nb == 44) { + return 5; + } else if (nb == 6 || nb == 19 || nb == 32 || nb == 45) { + return 6; + } else if (nb == 7 || nb == 20 || nb == 33 || nb == 46) { + return 7; + } else if (nb == 8 || nb == 21 || nb == 34 || nb == 47) { + return 8; + } else if (nb == 9 || nb == 22 || nb == 35 || nb == 48) { + return 9; + } else if (nb == 10 || nb == 23 || nb == 36 || nb == 49) { + return 10; + } else if (nb == 11 || nb == 24 || nb == 37 || nb == 50) { + return 10; + } else if (nb == 12 || nb == 25 || nb == 38 || nb == 51) { + return 10; + } else if (nb == 13 || nb == 26 || nb == 39 || nb == 52) { + return 10; + } +} + +char real_color(int nb) { + if (nb >= 1 && nb <= 13) { + return '*'; + } else if (nb >= 14 && nb <= 26) { + return '#'; + } else if (nb >= 27 && nb <= 39) { + return '&'; + } else { + return '$'; + } +} + +int victory(int sum) { + if (sum <= 21) { + return 0; + } else if (sum > 21) { + return 1; + } +} + +void draw_card(int value, char couleur) { + if (value == 1 || value == 14 || value == 27 || value == 40) { + printf(" ------------\n"); + printf("| A %c |\n",couleur); + printf("| |\n"); + printf("| |\n"); + printf("| |\n"); + printf("| |\n"); + printf("| |\n"); + printf("| A %c|\n",couleur); + printf(" ------------\n\n"); + } else if (value == 11 || value == 24 || value == 37 || value == 50) { + printf(" ------------\n"); + printf("| J %c |\n",couleur); + printf("| |\n"); + printf("| |\n"); + printf("| |\n"); + printf("| |\n"); + printf("| |\n"); + printf("| J %c|\n",couleur); + printf(" ------------\n\n"); + } else if (value == 12 || value == 25 || value == 38 || value == 51) { + printf(" ------------\n"); + printf("| Q %c |\n",couleur); + printf("| |\n"); + printf("| |\n"); + printf("| |\n"); + printf("| |\n"); + printf("| |\n"); + printf("| Q %c|\n",couleur); + printf(" ------------\n\n"); + } else if (value == 13 || value == 26 || value == 39 || value == 52) { + printf(" ------------\n"); + printf("| K %c |\n",couleur); + printf("| |\n"); + printf("| |\n"); + printf("| |\n"); + printf("| |\n"); + printf("| |\n"); + printf("| K %c|\n",couleur); + printf(" ------------\n\n"); + } else { + printf(" ------------\n"); + printf("|%2d %c |\n",real_value(value),couleur); + printf("| |\n"); + printf("| |\n"); + printf("| |\n"); + printf("| |\n"); + printf("| |\n"); + printf("| %2d %c|\n"); + printf(" ------------\n\n"); + } + +} + +int main() { + int i = 0, card_acc, acc = 2, init_dsum; + int res_p1, sum1 = 0; + int res_p2, sum2 = 0; + + printf("Welcome to BLACKJACK !\n"); + printf("Press any key to continue...\n\n"); + getch(); + + printf(" -> Your goal is to score exactly 21 points or the nearest possible to 21.\n"); + sleep(1); + printf(" -> You cannot exceed 21 points.\n"); + sleep(1); + printf(" -> You must have a final score greater than the dealer's one.\n"); + sleep(1); + printf(" -> If the dealer's final score is greater than 21, everyone who has a score less or equal to 21 wins the game.\n\n"); + sleep(1); + printf("Are you ready ?\n\n"); + printf("Press any key to continue...\n"); + getch(); + system("cls"); + + printf("The game begins in...\n"); + printf("3\n"); + sleep(1); + printf("2\n"); + sleep(1); + printf("1\n"); + sleep(1); + printf("GO!"); + sleep(1); + system("cls"); + + srand(time(NULL)); + dealer[0] = (rand() % 52) + 1; + + dealer[1] = (rand() % 52) + 1; + + cards[dealer[0]-1] = 0; + cards[dealer[1]-1] = 0; + + printf("Dealer first card is : \n\n"); + sleep(1); + draw_card(dealer[0],real_color(dealer[0])); + sleep(1); + printf("Dealer second card is : "); + sleep(1); + printf("hidden card\n\n"); + sleep(1); + printf("Press any key to continue...\n"); + getch(); + system("cls"); + + printf("Each player will now receive their two first initial cards :\n\n"); + sleep(2); + + + player1[0] = (rand() % 52) + 1; + if (cards[player1[0]-1] == 0) { + while (cards[player1[0]-1] == 0) { + player1[0] = (rand() % 52) + 1; + } + cards[player1[0]-1] = 0; + } else { + cards[player1[0]-1] = 0; + } + + + player1[1] = (rand() % 52) + 1; + if (cards[player1[1]-1] == 0) { + while (cards[player1[1]-1] == 0) { + player1[1] = (rand() % 52) + 1; + } + cards[player1[1]-1] = 0; + } else { + cards[player1[1]-1] = 0; + } + + + player2[0] = (rand() % 52) + 1; + if (cards[player2[0]-1] == 0) { + while (cards[player2[0]-1] == 0) { + player2[0] = (rand() % 52) + 1; + } + cards[player2[0]-1] = 0; + } else { + cards[player2[0]-1] = 0; + } + + + player2[1] = (rand() % 52) + 1; + if (cards[player2[1]-1] == 0) { + while (cards[player2[1]-1] == 0) { + player2[1] = (rand() % 52) + 1; + } + cards[player2[1]-1] = 0; + } else { + cards[player2[1]-1] = 0; + } + + printf("Player 1 first cards are : \n\n"); + sleep(1); + draw_card(player1[0],real_color(player1[0])); + sleep(1); + draw_card(player1[1],real_color(player1[1])); + sleep(1); + printf("Player 2 first cards are : \n\n"); + sleep(1); + draw_card(player2[0],real_color(player2[0])); + sleep(1); + draw_card(player2[1],real_color(player2[1])); + + printf("Press any key to continue..."); + getch(); + system("cls"); + + printf("Player 1, you can now choose either to turn more cards up or to keep your current values :\n\n"); + sleep(2); + + printf("Your current cards are : \n\n"); + draw_card(player1[0],real_color(player1[0])); + draw_card(player1[1],real_color(player1[1])); + printf("Would you like to turn up more cards ? Enter '1' for YES or '2' for NO : \n"); + scanf("%d", &res_p1); + if (res_p1 == 1) { + while(res_p1 == 1) { + card_acc = (rand() % 52) + 1; + if (cards[card_acc-1] == 0) { + while(cards[card_acc-1] == 0) { + card_acc = (rand() % 52) + 1; + } + cards[card_acc-1] = 0; + } else { + cards[card_acc-1] = 0; + } + player1[acc] = card_acc; + ++acc; + + while (player1[i] != 0) { + sum1 += real_value(player1[i]); + ++i; + } + + printf("Your next card is : \n\n"); + sleep(1); + draw_card(card_acc,real_color(card_acc)); + sleep(1); + + if (victory(sum1) == 1) { + printf(" -> Your final cards are : <-\n\n"); + for (int a = 0; player1[a] != 0; ++a) { + draw_card(player1[a],real_color(player1[a])); + } + printf("\n"); + printf("Your final score is %d, which is greater than 21. You've lost the game !\n",sum1); + sum1 = 0; + break; + } else { + printf("Would you like to turn up more cards ? Enter '1' for YES or '2' for NO : \n"); + scanf("%d", &res_p1); + } + } + if (sum1 != 0) { + printf("\n"); + printf("You decided to stop turning up new cards. Your final score is : "); + sleep(1); + printf("%d\n",sum1); + } + + } else { + while (player1[i] != 0) { + sum1 += real_value(player1[i]); + ++i; + } + 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("Press any key to continue..."); + getch(); + system("cls"); + + i = 0; + acc = 2; + + printf("Player 2, you can now choose either to turn more cards up or to keep your current values :\n\n"); + sleep(1); + + printf("Your current cards are : \n\n"); + draw_card(player2[0],real_color(player2[0])); + draw_card(player2[1],real_color(player2[1])); + printf("Would you like to turn up more cards ? Enter '1' for YES or '2' for NO : \n"); + scanf("%d", &res_p2); + if (res_p2 == 1) { + while(res_p2 == 1) { + card_acc = (rand() % 52) + 1; + if (cards[card_acc-1] == 0) { + while(cards[card_acc-1] == 0) { + card_acc = (rand() % 52) + 1; + } + cards[card_acc-1] = 0; + } else { + cards[card_acc-1] = 0; + } + player2[acc] = card_acc; + ++acc; + + while (player2[i] != 0) { + sum2 += real_value(player2[i]); + ++i; + } + + printf("Your next card is : \n\n"); + sleep(1); + draw_card(card_acc,real_color(card_acc)); + sleep(1); + + if (victory(sum2) == 1) { + printf(" -> Your final cards are : <-\n\n"); + for (int b = 0; player2[b] != 0; ++b) { + draw_card(player2[b],real_color(player2[b])); + } + printf("\n"); + printf("Your final score is %d, which is greater than 21. You've lost the game !\n",sum2); + sum2 = 0; + break; + } else { + printf("Would you like to turn up more cards ? Enter '1' for YES or '2' for NO : \n"); + scanf("%d", &res_p2); + } + } + if (sum2 != 0) { + printf("\n"); + printf("You decided to stop turning up new cards. Your final score is : "); + sleep(1); + printf("%d\n",sum2); + } + + } else { + while (player2[i] != 0) { + sum2 += real_value(player2[i]); + ++i; + } + 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("Press any key to continue..."); + getch(); + system("cls"); + + acc = 2; + + printf("-- THIS IS THE DEALER'S TURN --\n\n"); + sleep(2); + + init_dsum = real_value(dealer[0]) + real_value(dealer[1]); + printf("Dealer current cards are : \n\n"); + sleep(1); + draw_card(dealer[0],real_color(dealer[0])); + sleep(1); + draw_card(dealer[1],real_color(dealer[1])); + sleep(2); + + if (init_dsum < 16) { + printf("Dealer's score is less than 16. He will now turn up as much as necessary cards until he gets a score greater than 16.\n\n"); + sleep(2); + while (init_dsum < 16) { + init_dsum = 0; + card_acc = (rand() % 52) + 1; + if (cards[card_acc-1] == 0) { + while(cards[card_acc-1] == 0) { + card_acc = (rand() % 52) + 1; + } + cards[card_acc-1] = 0; + } else { + cards[card_acc-1] = 0; + } + dealer[acc] = card_acc; + ++acc; + for (int c = 0; dealer[c] != 0; ++c) { + init_dsum += real_value(dealer[c]); + } + } + printf("Dealer's hand is : \n\n"); + draw_card(dealer[0],real_color(dealer[0])); + draw_card(dealer[1],real_color(dealer[1])); + sleep(1); + for (int d = 2; dealer[d] != 0; ++d) { + draw_card(dealer[d],real_color(dealer[d])); + sleep(1); + } + printf("\n"); + sleep(1); + printf("Dealer's final score is : %d\n\n",init_dsum); + sleep(1); + + if (init_dsum > 21) { + printf("NO WAY ! Dealer's score is greater than 21 ! Everyone who has a final score less than 21 wins the game !\n\n"); + sleep(1); + if (sum1 != 0) { + printf("Player 1 wins the game! -- BLACKJACK --\n"); + } else { + printf("Player 1 loses the game!\n\n"); + } + if (sum2 != 0) { + printf("Player 2 wins the game! -- BLACKJACK --\n"); + } else { + printf("Player 2 loses the game!\n\n"); + } + } else { + printf("You win the game if you have a final score greater than %d.\n\n",init_dsum); + sleep(2); + if (sum1 != 0 && sum1 > init_dsum) { + printf("Player 1 wins the game with %d points! -> BLACKJACK <-\n",sum1); + } else { + printf("Player 1 final score is less than dealer's score!\n"); + printf("Player 1 loses the game!\n\n"); + } + if (sum2 != 0 && sum2 > init_dsum) { + printf("Player 2 wins the game with %d points! -> BLACKJACK <-\n",sum2); + } else { + printf("Player 2 final score is less than dealer's score!\n"); + printf("Player 2 loses the game!\n\n"); + } + } + } else { + printf("You win the game if you have a final score greater than %d.\n\n",init_dsum); + sleep(2); + if (sum1 != 0 && sum1 > init_dsum) { + printf("Player 1 wins the game with %d points! -> BLACKJACK <-\n\n",sum1); + } else if (sum1 > 0) { + printf("Player 1 final score is less than dealer's score!\n"); + printf("Player 1 loses the game!\n\n"); + } else { + printf("Player 1 final score is greater than 21!\n"); + printf("Player 1 loses the game!\n\n"); + } + if (sum2 != 0 && sum2 > init_dsum) { + printf("Player 2 wins the game with %d points! -> BLACKJACK <-\n\n",sum2); + } else if (sum2 > 0) { + printf("Player 2 final score is less than dealer's score!\n"); + printf("Player 2 loses the game!\n\n"); + } else { + printf("Player 2 final score is greater than 21!\n"); + printf("Player 2 loses the game!\n\n"); + } + } + + printf("Press any key to continue..."); + getch(); + + return 0; +} \ No newline at end of file diff --git a/blackjack.exe b/blackjack.exe new file mode 100644 index 0000000000000000000000000000000000000000..8bcc20a5c5460ec148a4f2e20cc44eed921c7c38 GIT binary patch literal 60320 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