i am working on this blackjack game and i facing some problems that i can't find the soulotion , i hope someone can help me..
the code is unfisished yet, but one of the main problems i have is how to print the cards , i wrote a function that is supossed to do this but i am having a touble using it in the code..
run example:
Welcome to CS intro Blackjack!
Start by entering a random seed:
5
You currently have 1000 fake dollars. How much do you want to bet?
500
The computer got Q and A.
You got 10 and 2.
The current sum is 12. Do you want another card? (Y / N)
Y
Extra card:5.
The current sum is 17. Do you want another card? (Y / N)
N
You have won 500 fake dollars!
You currently have 1500 fake dollars. How much do you want to bet?
500
The computer got 7 and 2.
You got J and 10.
You have won 500 fake dollars!
You currently have 2000 fake dollars. How much do you want to bet?
What I have tried:
#include <stdio.h>
#include <stdlib.h>
#define INITIAL_MONEY 1000
#define MIN_BET 1
int rand_range (int low, int high);
void srand_range (unsigned int seed);
int bett(int money);
int special_card(int card_array[NUMOFCARDS]);
int chosecomputercards(int first_card,int second_card);
int chickcomputercards(int sumcomp,int special_card,int bet);
int choseplayercard(int first_card,int second_card);
int chickplayersum(int sumplayer,int bet,int money);
int chick_winner(int computersum,int playersum);
void printcard(int card);
int main()
{
int money=INITIAL_MONEY;
int bet;
int seed;
int sumplayer=0,sumcomp=0;
int computer_total_sum;
int player_total_sum;
int card_array[NUMOFCARDS]={0};
int winner;
printf("Welcome to CS intro Blackjack!\n");
printf("Start by entering a random seed:\n");
scanf("%d",&seed);
srand_range(seed);
while(money>=1)
{
bet=bett(money);
computer_total_sum=chickcomputercards(sumcomp,special_card,bet);
while(computer_total_sum<21)
{
player_total_sum=chickplayersum(sumplayer,bet,money);
if(player_total_sum>21)
break;
while(player_total_sum<21)
{
winner=chick_winner(computer_total_sum,player_total_sum);
}
}
}
return (0);
}
int rand_range (int low, int high) {
static unsigned int next = 1;
next = next * 1103515245 + 12345;
return ((unsigned int)(next/65536) % 32768) % (high - low + 1) + low;
}
void srand_range (unsigned int seed)
{
for (int i = 0; (unsigned int)i < seed; i++) {
rand_range(i,i+1);
}
}
void printcard(int card)
{
switch(card){
case 1: printf("A"); break;
case 11: printf("J"); break;
case 12: printf("Q"); break;
case 13: printf("K"); break;
default:
printf("%d",card); break;
}
}
int bett(int money)
{
int riskedMoney;
printf("You currently have %d fake dollars. How much do you want to bet?\n",money );
scanf("%d",&riskedMoney);
while((riskedMoney>money)||(riskedMoney<min_bet mode="hold" /> {
printf("Your bet must be at least 1 and at most %d, try again:\n",money );
scanf("%d",&riskedMoney);
}
return(riskedMoney);
}
int special_card(int card_array[NUMOFCARDS])
{
int n=NumOfCards-1;
for (int i=NumOfCards-1;i>=0;i--)
{
if (card_array[i]<card_array[n])
{
n=i;
}
}
return(n+1);
}
int chosecomputercards(int first_card,int second_card)
{
int sum=0;
first_card=rand_range(1,13);
second_card=rand_range(1,13);
printf("The computer got");
printcards(first_card);
printf("and");
printcard(second_card);
sum=first_card+second_card;
return(sum);
}
int chickcomputercards(int sumcomp,int rare_card,int bet)
{
int extra_card;
int first_computer_card=0,second_computer_card=0;
rare_card=special_card(card_array[NUMOFCARDS]);
sumcomp=chosecomputercards(first_computer_card,second_computer_card);
if(sumcomp>21)
{
printf("The computer got more than 21\n");
printf("You have won %d fake dollars!\n",bet);
}
return(sumcomp);
while((sumcomp+rare_card)<21)
{
extra_card=rand_range(1,13);
if((sumcomp+rare_card+extra_card)<21)
{
printf("Extra card:%d.\n",extra_card);
sumcomp+=extra_card;
}
else
{
break;
}
}
return(sumcomp);
}
int choseplayercard(int first_card,int second_card)
{
first_card=rand_range(1,13);
second_card=rand_range(1,13);
printf("You got)
printcards(first_card);
printcard(second_card);
return(first_card+second_card);
}
int chickplayersum(int sumplayer,int bet,int money)
{
int extra_card;
int first_player_card=0,second_player_card=0;
sumplayer=choseplayercard(first_player_card,second_player_card);
char player_answer;
while(sumplayer<21)
{
printf("The current sum is %d. Do you want another card? (Y / N)\n",sumplayer);
scanf(" %c",&player_answer);
if(player_answer=='Y')
{
extra_card=rand_range(1,13);
printf("Extra card:%d.\n",extra_card);
sumplayer=sumplayer+extra_card;
}
else
break;
}
return(sumplayer);
if(sumplayer>21)
{
printf("The computer has won this round… you lose %d fake dollars!\n",bet);
money=money-bet;
}
return(sumplayer);
}
int chick_winner(int computersum,int playersum)/*finds who won*/
{
int bet=0,money=0;
if((computersum>playersum)&&(computersum<=21))
{
printf("The computer has won this round… you lose %d fake dollars!\n",bet);
money-=bet;
}
else if((playersum>computersum)&&(playersum<=21))
{
printf("You have won %d fake dollars!\n",bet);
money+=bet;
}
else if (computersum==playersum)
{
printf("You have won %d fake dollars!\n",bet);
money+=bet;
}
return(0);