CurvedSpace Forums: Blackjack.cpp - CurvedSpace Forums

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • {lang:pm_locked} This topic is locked

Blackjack.cpp (even more pwnage)

#1 {lang:macro__useroffline}   Neraphym {lang:icon}

  • Do not want!
  • Icon
  • {lang:view_blog}
  • Group: Super Moderator
  • Posts: 10,332
  • Joined: 29-October 03

Posted 14 March 2006 - 03:39 PM

// Blackjack Program
// Chris Ray


#include<iostream.h>
#include<math.h>
#include<string.h>
#include<stdlib.h>
#include<time.h>

void getname();
void deal();
void display();
void getplayercard(int);
void getdealercard(int);
void getpcvalue(int);
void getdcvalue(int);
void getpctype(int);
void getdctype(int);
void getpcname(int, int);
void getdcname(int, int);
void playerselect();
void dealerselect();
void playeraction();
void dealeraction();
void getplayerscore();
void getdealerscore();
void endgame();

int counter = 1;

// [Player's Name]
char pname[20] = "";

// [Player/Dealer Cards] (Player/Dealer may have maximum of 5 cards)
int playercard[5] = {0,0,0,0,0};
int dealercard[5] = {0,0,0,0,0};

int playercvalue[5] = {0,0,0,0,0};
int dealercvalue[5] = {0,0,0,0,0};

int playerctype[5] = {0,0,0,0,0};
int dealerctype[5] = {0,0,0,0,0};

char playercname[5][20] = {{""}, {""}, {""}, {""}, {""}};
char dealercname[5][20] = {{""}, {""}, {""}, {""}, {""}};

// [Hit or Miss]
int action = 0;

// [Player/Dealer Stay]
int pstay = 0;
int dstay = 0;

// [Player/Dealer Score]
int pscore = 0;
int playerscore[5] = {0,0,0,0,0};
int dscore = 0;
int dealerscore[5] = {0,0,0,0,0};

// [Game Ending Variable]
int ender = 0;
int blackjack = 0;

void main()
{

getname();
deal();

display();

if(ender == 0)
{
do
{
display();

playerselect();

if(action == 1)
{
playeraction();
}

getplayerscore();

if(pscore == -1)
{
action = 2;
}

}while(action == 1);

action = 0;

do
{
display();

dealerselect();

if(action == 1)
{
dealeraction();
}

getdealerscore();

if(dscore == -1)
{
action = 2;
}

}while(action == 1);

display();
}

endgame();
}

//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>

void getname()
{
system("cls");
cout << "Enter your name: ";
cin.getline(pname, 20);
}

//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>

void deal()
{
getplayercard(0);
getpcvalue(0);
getpctype(0);
getpcname(playercard[0], 0);

getdealercard(0);
getdcvalue(0);
getdctype(0);
getdcname(dealercard[0], 0);

getplayercard(1);
getpcvalue(1);
getpctype(1);
getpcname(playercard[1], 1);

getdealercard(1);
getdcvalue(1);
getdctype(1);
getdcname(dealercard[1], 1);

getdealerscore();
getplayerscore();

for(int bj = 0; bj < 5; bj++)
{
if(playerscore[bj] == 21 || dealerscore[bj] == 21)
{
blackjack = 1;
ender = 1;
}
}
}

//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>

void display()
{
system("cls");

getdealerscore();
getplayerscore();

if(playercard[0] != 0)
cout << "Player Card #1: " << playercname[0] << endl;
if(playercard[1] != 0)
cout << "Player Card #2: " << playercname[1] << endl;
if(playercard[2] != 0)
cout << "Player Card #3: " << playercname[2] << endl;
if(playercard[3] != 0)
cout << "Player Card #4: " << playercname[3] << endl;
if(playercard[4] != 0)
cout << "Player Card #5: " << playercname[4] << endl;

cout << "Player's Score: ";
if(playerscore[0] > 0)
{
cout << playerscore[0];
}
if(playerscore[1] > 0)
{
cout << " (or) " << playerscore[1];
}
if(playerscore[2] > 0)
{
cout << " (or) " << playerscore[2];
}
if(playerscore[3] > 0)
{
cout << " (or) " << playerscore[3];
}
if(playerscore[4] > 0)
{
cout << " (or) " << playerscore[4];
}

if(pscore == -1)
{
cout << "\tBUST" << endl;
}


cout << endl;
cout << endl;
cout << endl;



if(dealercard[0] != 0)
cout << "Dealer Card #1: " << dealercname[0] << endl;
if(dealercard[1] != 0)
cout << "Dealer Card #2: " << dealercname[1] << endl;
if(dealercard[2] != 0)
cout << "Dealer Card #3: " << dealercname[2] << endl;
if(dealercard[3] != 0)
cout << "Dealer Card #4: " << dealercname[3] << endl;
if(dealercard[4] != 0)
cout << "Dealer Card #5: " << dealercname[4] << endl;

cout << "Dealer's Score: ";
if(dealerscore[0] > 0)
{
cout << dealerscore[0];
}
if(dealerscore[1] > 0)
{
cout << " (or) " << dealerscore[1];
}
if(dealerscore[2] > 0)
{
cout << " (or) " << dealerscore[2];
}
if(dealerscore[3] > 0)
{
cout << " (or) " << dealerscore[3];
}
if(dealerscore[4] > 0)
{
cout << " (or) " << dealerscore[4];
}

if(dscore == -1)
{
cout << "\tBUST" << endl;
}

cout << endl;
cout << endl;
cout << endl;
}

//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>

void getplayercard(int cardnum1)
{
int shuffle1 = 0;
int match1 = 0;

srand (time(NULL));

do
{
match1 = 0;

shuffle1 = 1 + rand() % 52;

for(int mtest1p = 0; mtest1p < 5; mtest1p++)
{
if(playercard[mtest1p] == shuffle1)
{
match1 = 1;
}
}

for(int mtest1d = 0; mtest1d < 5; mtest1d++)
{
if(dealercard[mtest1d] == shuffle1)
{
match1 = 1;
}
}

} while(match1 != 0);

playercard[cardnum1] = shuffle1;

match1 = 0;
}

//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>

void getdealercard(int cardnum2)
{
int shuffle2 = 0;
int match2 = 0;

srand (time(NULL));

do
{
match2 = 0;

shuffle2 = 1 + rand() % 52;

for(int mtest2p = 0; mtest2p < 5; mtest2p++)
{
if(playercard[mtest2p] == shuffle2)
{
match2 = 1;
}
}

for(int mtest2d = 0; mtest2d < 5; mtest2d++)
{
if(dealercard[mtest2d] == shuffle2)
{
match2 = 1;
}
}

} while(match2 != 0);

dealercard[cardnum2] = shuffle2;

match2 = 0;
}

//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>

void getpcvalue(int valuenum1)
{
int valuetype1 = playercard[valuenum1] % 13;

if(valuetype1 == 1)
{
playercvalue[valuenum1] = 11;
}
else if(valuetype1 == 0 || valuetype1 >= 10)
{
playercvalue[valuenum1] = 10;
}
else
{
playercvalue[valuenum1] = valuetype1;
}
}

//<//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>

void getdcvalue(int valuenum2)
{
int valuetype2 = dealercard[valuenum2] % 13;

if(valuetype2 == 1)
{
dealercvalue[valuenum2] = 11;
}
else if(valuetype2 == 0 || valuetype2 >= 10)
{
dealercvalue[valuenum2] = 10;
}
else
{
dealercvalue[valuenum2] = valuetype2;
}
}

//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>

void getpctype(int typenum1)
{
int modtype1 = playercard[typenum1] % 13;

if(modtype1 == 1)
{
playerctype[typenum1] = 1;
}
else
{
playerctype[typenum1] = 0;
}
}

//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>

void getdctype(int typenum2)
{
int modtype2 = dealercard[typenum2] % 13;

if(modtype2 == 1)
{
dealerctype[typenum2] = 1;
}
else
{
dealerctype[typenum2] = 0;
}
}

//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>

void getpcname(int pncard, int pcnum)
{
char pcname[20];

switch(pncard)
{
// Spades

case 1:
strcpy(pcname, "Ace of Spades");
break;
case 2:
strcpy(pcname, "2 of Spades");
break;
case 3:
strcpy(pcname, "3 of Spades");
break;
case 4:
strcpy(pcname, "4 of Spades");
break;
case 5:
strcpy(pcname, "5 of Spades");
break;
case 6:
strcpy(pcname, "6 of Spades");
break;
case 7:
strcpy(pcname, "7 of Spades");
break;
case 8:
strcpy(pcname, "8 of Spades");
break;
case 9:
strcpy(pcname, "9 of Spades");
break;
case 10:
strcpy(pcname, "10 of Spades");
break;
case 11:
strcpy(pcname, "Jack of Spades");
break;
case 12:
strcpy(pcname, "Queen of Spades");
break;
case 13:
strcpy(pcname, "King of Spades");
break;

// Hearts

case 14:
strcpy(pcname, "Ace of Hearts");
break;
case 15:
strcpy(pcname, "2 of Hearts");
break;
case 16:
strcpy(pcname, "3 of Hearts");
break;
case 17:
strcpy(pcname, "4 of Hearts");
break;
case 18:
strcpy(pcname, "5 of Hearts");
break;
case 19:
strcpy(pcname, "6 of Hearts");
break;
case 20:
strcpy(pcname, "7 of Hearts");
break;
case 21:
strcpy(pcname, "8 of Hearts");
break;
case 22:
strcpy(pcname, "9 of Hearts");
break;
case 23:
strcpy(pcname, "10 of Hearts");
break;
case 24:
strcpy(pcname, "Jack of Hearts");
break;
case 25:
strcpy(pcname, "Queen of Hearts");
break;
case 26:
strcpy(pcname, "King of Hearts");
break;

// Clubs

case 27:
strcpy(pcname, "Ace of Clubs");
break;
case 28:
strcpy(pcname, "2 of Clubs");
break;
case 29:
strcpy(pcname, "3 of Clubs");
break;
case 30:
strcpy(pcname, "4 of Clubs");
break;
case 31:
strcpy(pcname, "5 of Clubs");
break;
case 32:
strcpy(pcname, "6 of Clubs");
break;
case 33:
strcpy(pcname, "7 of Clubs");
break;
case 34:
strcpy(pcname, "8 of Clubs");
break;
case 35:
strcpy(pcname, "9 of Clubs");
break;
case 36:
strcpy(pcname, "10 of Clubs");
break;
case 37:
strcpy(pcname, "Jack of Clubs");
break;
case 38:
strcpy(pcname, "Queen of Clubs");
break;
case 39:
strcpy(pcname, "King of Clubs");
break;

// Diamonds

case 40:
strcpy(pcname, "Ace of Diamonds");
break;
case 41:
strcpy(pcname, "2 of Diamonds");
break;
case 42:
strcpy(pcname, "3 of Diamonds");
break;
case 43:
strcpy(pcname, "4 of Diamonds");
break;
case 44:
strcpy(pcname, "5 of Diamonds");
break;
case 45:
strcpy(pcname, "6 of Diamonds");
break;
case 46:
strcpy(pcname, "7 of Diamonds");
break;
case 47:
strcpy(pcname, "8 of Diamonds");
break;
case 48:
strcpy(pcname, "9 of Diamonds");
break;
case 49:
strcpy(pcname, "10 of Diamonds");
break;
case 50:
strcpy(pcname, "Jack of Diamonds");
break;
case 51:
strcpy(pcname, "Queen of Diamonds");
break;
case 52:
strcpy(pcname, "King of Diamonds");
break;

// Default

default:
strcpy(pcname, "Joker???");
}

for(int alpha = 0; alpha < 20; alpha++)
{
playercname[pcnum][alpha] = pcname[alpha];
}
}

//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>

void getdcname(int dncard, int dcnum)
{
char dcname[20];

switch(dncard)
{
// Spades

case 1:
strcpy(dcname, "Ace of Spades");
break;
case 2:
strcpy(dcname, "2 of Spades");
break;
case 3:
strcpy(dcname, "3 of Spades");
break;
case 4:
strcpy(dcname, "4 of Spades");
break;
case 5:
strcpy(dcname, "5 of Spades");
break;
case 6:
strcpy(dcname, "6 of Spades");
break;
case 7:
strcpy(dcname, "7 of Spades");
break;
case 8:
strcpy(dcname, "8 of Spades");
break;
case 9:
strcpy(dcname, "9 of Spades");
break;
case 10:
strcpy(dcname, "10 of Spades");
break;
case 11:
strcpy(dcname, "Jack of Spades");
break;
case 12:
strcpy(dcname, "Queen of Spades");
break;
case 13:
strcpy(dcname, "King of Spades");
break;

// Hearts

case 14:
strcpy(dcname, "Ace of Hearts");
break;
case 15:
strcpy(dcname, "2 of Hearts");
break;
case 16:
strcpy(dcname, "3 of Hearts");
break;
case 17:
strcpy(dcname, "4 of Hearts");
break;
case 18:
strcpy(dcname, "5 of Hearts");
break;
case 19:
strcpy(dcname, "6 of Hearts");
break;
case 20:
strcpy(dcname, "7 of Hearts");
break;
case 21:
strcpy(dcname, "8 of Hearts");
break;
case 22:
strcpy(dcname, "9 of Hearts");
break;
case 23:
strcpy(dcname, "10 of Hearts");
break;
case 24:
strcpy(dcname, "Jack of Hearts");
break;
case 25:
strcpy(dcname, "Queen of Hearts");
break;
case 26:
strcpy(dcname, "King of Hearts");
break;

// Clubs

case 27:
strcpy(dcname, "Ace of Clubs");
break;
case 28:
strcpy(dcname, "2 of Clubs");
break;
case 29:
strcpy(dcname, "3 of Clubs");
break;
case 30:
strcpy(dcname, "4 of Clubs");
break;
case 31:
strcpy(dcname, "5 of Clubs");
break;
case 32:
strcpy(dcname, "6 of Clubs");
break;
case 33:
strcpy(dcname, "7 of Clubs");
break;
case 34:
strcpy(dcname, "8 of Clubs");
break;
case 35:
strcpy(dcname, "9 of Clubs");
break;
case 36:
strcpy(dcname, "10 of Clubs");
break;
case 37:
strcpy(dcname, "Jack of Clubs");
break;
case 38:
strcpy(dcname, "Queen of Clubs");
break;
case 39:
strcpy(dcname, "King of Clubs");
break;

// Diamonds

case 40:
strcpy(dcname, "Ace of Diamonds");
break;
case 41:
strcpy(dcname, "2 of Diamonds");
break;
case 42:
strcpy(dcname, "3 of Diamonds");
break;
case 43:
strcpy(dcname, "4 of Diamonds");
break;
case 44:
strcpy(dcname, "5 of Diamonds");
break;
case 45:
strcpy(dcname, "6 of Diamonds");
break;
case 46:
strcpy(dcname, "7 of Diamonds");
break;
case 47:
strcpy(dcname, "8 of Diamonds");
break;
case 48:
strcpy(dcname, "9 of Diamonds");
break;
case 49:
strcpy(dcname, "10 of Diamonds");
break;
case 50:
strcpy(dcname, "Jack of Diamonds");
break;
case 51:
strcpy(dcname, "Queen of Diamonds");
break;
case 52:
strcpy(dcname, "King of Diamonds");
break;

// Default

default:
strcpy(dcname, "Joker???");
}

for(int beta = 0; beta < 20; beta++)
{
dealercname[dcnum][beta] = dcname[beta];
}
}

//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>

void playerselect()
{
action = 0;

int act = 0;

do
{
cout << "Select an action:" << endl;
cout << "1: Hit" << endl;
cout << "2: Stay" << endl;
cin >> action;

if(action == 1)
{
act = 1;
}
else if(action == 2)
{
act = 1;
}
else
{
act = 0;
}

}while(act != 1);

act = 0;
}

//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>

void dealerselect()
{
action = 0;

if(dscore < pscore)
{
action = 1;
}
else if(dscore < 16)
{
action = 1;
}
else
{
action = 2;
}

if(dscore == 21 || pscore == -1)
{
action = 2;
}
}

//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>

void playeraction()
{
if(playercard[2] == 0)
{
getplayercard(2);
getpcvalue(2);
getpctype(2);
getpcname(playercard[2], 2);
}
else if(playercard[3] == 0)
{
getplayercard(3);
getpcvalue(3);
getpctype(3);
getpcname(playercard[3], 3);
}
else if(playercard[4] == 0)
{
getplayercard(4);
getpcvalue(4);
getpctype(4);
getpcname(playercard[4], 4);
}
}

//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>

void dealeraction()
{
if(dealercard[2] == 0)
{
getdealercard(2);
getdcvalue(2);
getdctype(2);
getdcname(dealercard[2], 2);
}
else if(dealercard[3] == 0)
{
getdealercard(3);
getdcvalue(3);
getdctype(3);
getdcname(dealercard[3], 3);
}
else if(dealercard[4] == 0)
{
getdealercard(4);
getdcvalue(4);
getdctype(4);
getdcname(dealercard[4], 4);
}
}

//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>

void getplayerscore()
{
int ptype = playerctype[0] + playerctype[1] + playerctype[2] + playerctype[3] + playerctype[4];

pscore = playercvalue[0] + playercvalue[1] + playercvalue[2] + playercvalue[3] + playercvalue[4];

if(ptype >= 1)
{
playerscore[1] = pscore - 10;
}
if(ptype >= 2)
{
playerscore[2] = pscore - 20;
}
if(ptype >= 3)
{
playerscore[3] = pscore - 30;
}
if(ptype >= 4)
{
playerscore[4] = pscore - 40;
}

playerscore[0] = pscore;

if((ptype > 0) && (pscore > 21))
{
pscore = playerscore[1];
}
if((ptype > 1) && (pscore > 21))
{
pscore = playerscore[2];
}
if((ptype > 2) && (pscore > 21))
{
pscore = playerscore[3];
}
if((ptype > 3) && (pscore > 21))
{
pscore = playerscore[4];
}

if(pscore > 21 && ptype == 0)
{
pscore = -1;
}
if(playerscore[1] > 21 && ptype == 1)
{
pscore = -1;
}
if(playerscore[2] > 21 && ptype == 2)
{
pscore = -1;
}
if(playerscore[3] > 21 && ptype == 3)
{
pscore = -1;
}
if(playerscore[4] > 21 && ptype == 4)
{
pscore = -1;
}
}

//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>

void getdealerscore()
{
int dtype = dealerctype[0] + dealerctype[1] + dealerctype[2] + dealerctype[3] + dealerctype[4];

dscore = dealercvalue[0] + dealercvalue[1] + dealercvalue[2] + dealercvalue[3] + dealercvalue[4];

if(dtype >= 1)
{
dealerscore[1] = dscore - 10;
}
if(dtype >= 2)
{
dealerscore[2] = dscore - 20;
}
if(dtype >= 3)
{
dealerscore[3] = dscore - 30;
}
if(dtype >= 4)
{
dealerscore[4] = dscore - 40;
}

dealerscore[0] = dscore;

if((dtype > 0) && (dscore > 21))
{
dscore = dealerscore[1];
}
if((dtype > 1) && (dscore > 21))
{
dscore = dealerscore[2];
}
if((dtype > 2) && (dscore > 21))
{
dscore = dealerscore[3];
}
if((dtype > 3) && (dscore > 21))
{
dscore = dealerscore[4];
}

if(dscore > 21 && dtype == 0)
{
dscore = -1;
}
if(dealerscore[1] > 21 && dtype == 1)
{
dscore = -1;
}
if(dealerscore[2] > 21 && dtype == 2)
{
dscore = -1;
}
if(dealerscore[3] > 21 && dtype == 3)
{
dscore = -1;
}
if(dealerscore[4] > 21 && dtype == 4)
{
dscore = -1;
}
}

//<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>

void endgame()
{
if(blackjack == 1)
{
cout << "Blackjack!!!" << endl;
}

if(pscore > dscore)
{
cout << pname << " wins!" << endl;
}
else if(pscore < 22 && playercard[4] != 0)
{
cout << pname << " wins!" << endl;
}
else
{
cout << "Dealer wins" << endl;
}
cout << endl;
}


Neraphym Archaeon
Posted Image
GWAMM
0

Page 1 of 1
  • You cannot start a new topic
  • {lang:pm_locked} This topic is locked

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users