Code:
#include <stdio.h>
#include <time.h>
#include <string.h>
//Define All Global Variables Here
int MinNumber,MaxNumber,Hand,Dealer,Turn;
char action[20];
char *HitIt = "h";
char *Stay = "s";
char *DealIt = "d";
char *Quit = "q";
//Define All Functions Here
int getrand(int min, int max);
int srand(unsigned);
int rand();
void Hit();
void Deal();
void PlayerHit();
void DealerHit();
void Determine();
int main(int argc, const char * argv[]) {
MaxNumber = 11;
MinNumber = 0;
Hand = 0;
Dealer = 0;
Turn = 1;
srand(time(NULL));
Deal();
Determine();
return 0;
}
// Gets two random numbers from 1 to 13 and adds them together and sets the Hand variable to it
// Gets two random numbers from 1 to 13 and adds them together and sets the Dealer variable to it
void Deal() {
Hand = getrand(MinNumber,MaxNumber)+getrand(MinNumber,Max Number);
Dealer = getrand(MinNumber,MaxNumber)+getrand(MinNumber,Max Number);
Turn = 1;
if(Dealer > 20 || Hand > 20) {
printf("\n\nSorry but there was an error :(\n");
printf("\t Player");
printf("\t Dealer \t\n");
printf("\t %i \t",Hand);
printf("\t %i \t\n\n",Dealer);
}
}
// Adds a random number from 1-13 to the players hand variable
void PlayerHit() {
if(Turn == 1) {
Hand += getrand(MinNumber, MaxNumber);
}
else {
printf("Sorry But there was an error");
}
}
// Adds a random number from 1-13 to the dealers Dealer variable
void DealerHit() {
if(Turn == 0) {
Dealer += getrand(MinNumber, MaxNumber);
}
else {
printf("Sorry But there was a dealer error");
}
}
void Determine() {
if(action != NULL) {
if(strcmp(action,HitIt) == 0) {
Turn = 1;
PlayerHit();
}
if(strcmp(action,Stay) == 0) {
if(Dealer < 17) {
Turn = 0;
DealerHit();
}
}
if(strcmp(action,DealIt) == 0) {
printf("\nNew Hand\n\n");
Deal();
}
}
if(Turn == 0) {
if(Dealer < 17) {
DealerHit();
Determine();
}
else if((Dealer < Hand) && (Hand <= 21)) {
DealerHit();
Determine();
}
}
// Start Determining who wins
if(Hand == 21 && Dealer != 21) {
printf("Player:\t %i Black Jack!! you Win\n",Hand);
printf("Dealer:\t %i",Dealer);
printf("\nDeal(d): ");
scanf("%s",action);
Determine();
}
else if(Dealer == 21) {
printf("Player:\t %i\n",Hand);
printf("Dealer:\t %i Black Jack!! Dealer Wins",Dealer);
printf("\nDeal(d): ");
scanf("%s",action);
Determine();
}
else if(Hand > 21 && Dealer < 21) {
printf("Player:\t %i you busted!! \n",Hand);
printf("Dealer:\t %i Dealer Wins",Dealer);
printf("\nDeal(d): ");
scanf("%s",action);
Determine();
}
else if(Hand < 21 && Dealer > 21) {
printf("Player:\t %i you Win\n",Hand);
printf("Dealer:\t %i Dealer busted!!",Dealer);
printf("\nDeal(d): ");
scanf("%s",action);
Determine();
}
else if(Hand > 21 && Dealer > 21) {
printf("Player:\t %i you Busted!!\n",Hand);
printf("Dealer:\t %i dealer busted!!",Dealer);
printf("\nDeal(d): ");
scanf("%s",action);
Determine();
}
else {
if(Turn == 1) {
if(Dealer > Hand) {
printf("Player:\t %i\n",Hand);
printf("Dealer:\t %i",Dealer);
printf("\nYou can Hit(h), or stay(s): ");
scanf("%s",action);
Determine();
}
else {
printf("Player:\t %i\n",Hand);
printf("Dealer:\t %i",Dealer);
printf("\nYou can Hit(h), or stay(s): ");
scanf("%s",action);
Determine();
}
}
}
}
// Generates a Random number between Min and Max
int getrand(int Min,int Max){
return(rand()%(Max-Min)+Min);
}