I started programming a couple of months ago and thought I should set myself a challenge so I've decided to create a Blackjack game. I've created a struct for the cards but I don't know how to define each card, please help!
// Written by Maxime Turner
// File: main.c
// ************************************************** ************************************************** **
// Header files
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <time.h>
#include <string.h>
// ************************************************** ************************************************** **
// Function prototyping
int getBet();
void dealCard();
// ************************************************** ************************************************** **
// Global variables
int bank;
int bet;
time_t t;
struct cards // This defines the characteristics of a card
{
char suit[5];
char rank[5];
};
struct cards card[52]; // There are 52 cards in a deck (4 suits with 13 ranks each)
// Beginning of cards with "Clubs" as suit
strcpy(card[0].suit, 'c');
card[0].rank = '2';
card[1].suit = 'c';
card[1].rank = '3';
card[2].suit = 'c';
card[2].rank = '4';
card[3].suit = 'c';
card[3].rank = '5';
card[4].suit = 'c';
card[4].rank = '6';
card[5].suit = 'c';
card[5].rank = '7';
card[6].suit = 'c';
card[6].rank = '8';
card[7].suit = 'c';
card[7].rank = '9';
card[8].suit = 'c';
card[8].rank = "10";
card[9].suit = 'c';
card[9].rank = 'J';
card[10].suit = 'c';
card[10].rank = 'Q';
card[11].suit = 'c';
card[11].rank = 'K';
card[12].suit = 'c';
card[12].rank = 'A';
// Beginning of cards "Diamonds" as suit
card[13].suit = 'd';
card[13].rank = '2';
card[14].suit = 'd';
card[14].rank = '3';
card[15].suit = 'd';
card[15].rank = '4';
card[16].suit = 'd';
card[16].rank = '5';
card[17].suit = 'd';
card[17].rank = '6';
card[18].suit = 'd';
card[18].rank = '7';
card[19].suit = 'd';
card[19].rank = '8';
card[20].suit = 'd';
card[20].rank = '9';
card[21].suit = 'd';
card[21].rank = "10";
card[22].suit = 'd';
card[22].rank = 'J';
card[23].suit = 'd';
card[23].rank = 'Q';
card[24].suit = 'd';
card[24].rank = 'K';
card[25].suit = 'd';
card[25].rank = 'A';
// Beginning of cards "Hearts" as suit
card[26].suit = 'h';
card[26].rank = '2';
card[27].suit = 'h';
card[27].rank = '3';
card[28].suit = 'h';
card[28].rank = '4';
card[29].suit = 'h';
card[29].rank = '5';
card[30].suit = 'h';
card[30].rank = '6';
card[31].suit = 'h';
card[31].rank = '7';
card[32].suit = 'h';
card[32].rank = '8';
card[33].suit = 'h';
card[33].rank = '9';
card[34].suit = 'h';
card[34].rank = "10";
card[35].suit = 'h';
card[35].rank = 'J';
card[36].suit = 'h';
card[36].rank = 'Q';
card[37].suit = 'h';
card[37].rank = 'K';
card[38].suit = 'h';
card[38].rank = 'A';
// Beginning of cards "Spades" as suit
card[39].suit = 's';
card[39].rank = '2';
card[40].suit = 's';
card[40].rank = '3';
card[41].suit = 's';
card[41].rank = '4';
card[42].suit = 's';
card[42].rank = '5';
card[43].suit = 's';
card[43].rank = '6';
card[44].suit = 's';
card[44].rank = '7';
card[45].suit = 's';
card[45].rank = '8';
card[46].suit = 's';
card[46].rank = '9';
card[47].suit = 's';
card[47].rank = "10";
card[48].suit = 's';
card[48].rank = 'J';
card[49].suit = 's';
card[49].rank = 'Q';
card[50].suit = 's';
card[50].rank = 'K';
card[51].suit = 's';
card[51].rank = 'A';
struct playerHand // This creates the player's hand
{
char suit[5];
char rank[5];
};
struct playerHand playerCard[5]; // This allows the player to hold up to 5 cards
struct dealerHand // This creates the dealer's hand
{
char suit[5];
char rank[5];
};
struct dealerHand dealerCard[5]; // This allows the dealer to hold up to 5 cards
// ************************************************** ************************************************** **
// Main function
int main()
{
bank = 100;
getBet();
dealCard();
printf("Your first card is: %c%c\n", card[i].rank, card[i].suit);
return 0;
}
// ************************************************** ************************************************** **
// Function to receive the user's bet
int getBet()
{
do // Will keep running until the user enters valid bet
{
printf("You have %d$.\n", bank);
printf("How much do you want to bet? ");
printf("You must enter a value between 1 and %d.\n", bank);
printf("Your bet: ");
scanf(" %d", &bet);
if (bet >= 1 && bet <= bank)
{
return(bet);
}
else
{
printf("\nYou did not enter a valid bet.\n\n");
}
} while ((bet < 1) || (bet > bank));
}
// ************************************************** ************************************************** **
// Function deals a card, ensuring that it is not being duplicated
void dealCard(struct cards card)
{
int i, j;
int cardDup = 0;
do // Will keep running until there is no longer a duplicate card
{
card[i] = (rand() %52);
for (j = 0; j < i; j++)
{
if (card[i] == card[j])
{
cardDup = cardDup + 1;
}
} while (cardDup == 1);
}
// ************************************************** ************************************************** **