155 lines
3.3 KiB
Plaintext
155 lines
3.3 KiB
Plaintext
/**
|
|
* The basic deck are CARD_0, CARD_1, ... CARD_52 with
|
|
* signify Ace, 2-10, Jack, Queen, King of
|
|
* Clubs/Hearts/Spades/Diamonds in that order
|
|
*
|
|
* Copyright (C) 2002-2003 Jim Woodgate - woody@realtime.net
|
|
*/
|
|
|
|
int NUM_DECKS = 2;
|
|
|
|
string SUIT0 = "C";
|
|
string LSUIT0 = "Clubs";
|
|
string SUIT1 = "H";
|
|
string LSUIT1 = "Hearts";
|
|
string SUIT2 = "S";
|
|
string LSUIT2 = "Spades";
|
|
string SUIT3 = "D";
|
|
string LSUIT3 = "Diamonds";
|
|
|
|
string CARD0 = "A";
|
|
string LCARD0 = "Ace";
|
|
string CARD1 = "2";
|
|
string LCARD1 = "2";
|
|
string CARD2 = "3";
|
|
string LCARD2 = "3";
|
|
string CARD3 = "4";
|
|
string LCARD3 = "4";
|
|
string CARD4 = "5";
|
|
string LCARD4 = "5";
|
|
string CARD5 = "6";
|
|
string LCARD5 = "6";
|
|
string CARD6 = "7";
|
|
string LCARD6 = "7";
|
|
string CARD7 = "8";
|
|
string LCARD7 = "8";
|
|
string CARD8 = "9";
|
|
string LCARD8 = "9";
|
|
string CARD9 = "T";
|
|
string LCARD9 = "10";
|
|
string CARD10 = "J";
|
|
string LCARD10 = "Jack";
|
|
string CARD11 = "Q";
|
|
string LCARD11 = "Queen";
|
|
string CARD12 = "K";
|
|
string LCARD12 = "King";
|
|
|
|
void shuffle(object oStore) {
|
|
int i;
|
|
for (i=0; i<52; i++) {
|
|
SetLocalInt(oStore, "CARD_"+IntToString(i), 0);
|
|
}
|
|
}
|
|
|
|
int cardsLeft(object oStore) {
|
|
int i;
|
|
int left=0;
|
|
|
|
for (i=0; i<52; i++) {
|
|
left += (NUM_DECKS - GetLocalInt(oStore, "CARD_"+IntToString(i)));
|
|
}
|
|
|
|
return left;
|
|
}
|
|
|
|
int quickCheck(object oStore) {
|
|
int i;
|
|
for (i=0; i<52; i++) {
|
|
if (GetLocalInt(oStore, "CARD_"+IntToString(i)) < NUM_DECKS)
|
|
return TRUE;
|
|
}
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
int pickCard(object oStore) {
|
|
int left = quickCheck(oStore);
|
|
if (left == FALSE) {
|
|
PrintString("*ERROR* Ran out of cards!");
|
|
return -1;
|
|
}
|
|
|
|
int pick = Random(52);
|
|
while (GetLocalInt(oStore, "CARD_"+IntToString(pick)) == NUM_DECKS) {
|
|
pick = Random(52);
|
|
}
|
|
|
|
SetLocalInt(oStore, "CARD_"+IntToString(pick),
|
|
GetLocalInt(oStore, "CARD_"+IntToString(pick))+1);
|
|
return pick;
|
|
}
|
|
|
|
string getValue(int card) {
|
|
switch(card%13) {
|
|
case 0: return CARD0;
|
|
case 1: return CARD1;
|
|
case 2: return CARD2;
|
|
case 3: return CARD3;
|
|
case 4: return CARD4;
|
|
case 5: return CARD5;
|
|
case 6: return CARD6;
|
|
case 7: return CARD7;
|
|
case 8: return CARD8;
|
|
case 9: return CARD9;
|
|
case 10: return CARD10;
|
|
case 11: return CARD11;
|
|
case 12: return CARD12;
|
|
default: return "Invalid Card: "+IntToString(card);
|
|
}
|
|
return "Invalid Card: "+IntToString(card);
|
|
}
|
|
|
|
string getLongValue(int card) {
|
|
switch(card%13) {
|
|
case 0: return LCARD0;
|
|
case 1: return LCARD1;
|
|
case 2: return LCARD2;
|
|
case 3: return LCARD3;
|
|
case 4: return LCARD4;
|
|
case 5: return LCARD5;
|
|
case 6: return LCARD6;
|
|
case 7: return LCARD7;
|
|
case 8: return LCARD8;
|
|
case 9: return LCARD9;
|
|
case 10: return LCARD10;
|
|
case 11: return LCARD11;
|
|
case 12: return LCARD12;
|
|
default: return "Invalid Card: "+IntToString(card);
|
|
}
|
|
return "Invalid Card: "+IntToString(card);
|
|
}
|
|
|
|
string getSuit(int card) {
|
|
switch(card/13) {
|
|
case 0: return SUIT0;
|
|
case 1: return SUIT1;
|
|
case 2: return SUIT2;
|
|
case 3: return SUIT3;
|
|
default: return "Invalid Card: "+IntToString(card);
|
|
}
|
|
return "Invalid Card: "+IntToString(card);
|
|
}
|
|
|
|
string getLongSuit(int card) {
|
|
switch(card/13) {
|
|
case 0: return LSUIT0;
|
|
case 1: return LSUIT1;
|
|
case 2: return LSUIT2;
|
|
case 3: return LSUIT3;
|
|
default: return "Invalid Card: "+IntToString(card);
|
|
}
|
|
return "Invalid Card: "+IntToString(card);
|
|
}
|
|
|
|
//void main(){}
|