I decided to do this out of curiosity and boredom...
Can anyone check it out and report if there are any bugs and/or problems? Just please don't tell me where I wen't wrong with my code, just explain the bug so I can find and fix it myself to improve my C knowledge. Thanks!
Code:#include <stdio.h>#include <stdlib.h>
#include <time.h>
int main(){
char combination [5][14]={0};
char color,card,hit='y',temp;
int hand=0,dealer,card_v,soft=0;
printf ("Blackjack\n\n\n");
printf ("Dealer stands at all (hard or soft) 17's!\n\n\n");
srand (time(0));
while (hit=='y'){
do{
color = 3+rand()%(6-3+1);
card = 1+rand()%(13-1+1);
}
while (combination[color-3][card]==1);
combination [color-3][card] = 1;
switch (card){
case 1:
card = 'A'; card_v=11; soft=1;
break;
case 2:
card = '2'; card_v=2;
break;
case 3:
card = '3'; card_v=3;
break;
case 4:
card = '4'; card_v=4;
break;
case 5:
card = '5'; card_v=5;
break;
case 6:
card = '6'; card_v=6;
break;
case 7:
card = '7'; card_v=7;
break;
case 8:
card = '8'; card_v=8;
break;
case 9:
card = '9'; card_v=9;
break;
case 10:
card = 'X'; card_v=10;
break;
case 11:
card = 'J'; card_v=10;
break;
case 12:
card = 'Q'; card_v=10;
break;
case 13:
card = 'K'; card_v=10;
break;
}
printf ("%c%c\n",color,card);
hand=hand+card_v;
if (hand>21 && soft && card_v==11)
hand -= 10;
printf ("Hand = %d\n", hand);
if (hand>21) {
printf ("You lost!");return 0;
}
if (hand == 21) {
printf ("Blackjack!");return 0;
}
printf ("Hit?(y/n)"); scanf (" %c", &hit);
}
dealer = 17+rand()%(26-17+1);
if (dealer>hand && dealer<=21)
printf ("Dealer has %d!You lost!",dealer);
else
printf ("Dealer has %d! Congratulations!",dealer);
return 0;
}

