Public feed #530753

IRC_PIG

public text v1 · immutable
Raw Edit
·published 2007-06-02 06:50 UTC
rendered paste body
/**************************************************
**                  bridge.exe                   **
** Please note that card rank 10 is defined as T **
**************************************************/
#include<iostream>
using namespace std;

const int hand=13;
const int deckSize=52;

int shuffle(int a[ ]) {
    srand(time(NULL));
    for(int l=0; l<deckSize; l++) {
            int m= rand() % (deckSize-l);
            int tmp=a[l];
            a[l]=a[l+m];
            a[l+m]=tmp;
            }
}

char convertRank(int a){
     char rank;
     char ranks[hand] = { 'A','2','3','4','5','6','7','8','9','T','J','Q','K' };
     rank = ranks[(a % 13)];                                             
     return rank;
}

void intoSuit(int *a) {
	string clubs, spades, hearts, diamonds;
	spades = " ";
	clubs = " ";
	hearts = " ";
    diamonds = " ";
	
	for(int n=0;n<hand;n++){ 
		if (a[n]<13) {
			spades = spades + convertRank(a[n]) + " ";
			}
		else if (a[n]>38) {
			clubs = clubs + convertRank(a[n]) + " ";
			}
		else if ((a[n]>12) && (a[n]<26)) {
			hearts = hearts + convertRank(a[n]) + " ";	
			}
		else if ((a[n]>25) && (a[n]<39)) {
			diamonds = diamonds + convertRank(a[n]) + " ";
			}
		}
	cout << "\nSpades: " << spades << endl;
	cout << "Hearts: " << hearts << endl;
	cout << "Clubs: " << clubs << endl;
	cout << "Diamonds: " << diamonds << endl;
}

int count(int *a){
    int total=0;                    
    for(int u=0; u<hand; u++) {
        if (a[u] % 13 == 0) {
            total = total + 4;
            }
        else if (a[u] % 13 == 10) {
            total = total + 1;
            }
        else if (a[u] % 13 == 11) {
            total = total + 2;
            }
        else if (a[u] % 13 == 12) {
            total = total + 3;
            }
    }
    return total;
}

int main( ) {
    int hand1total=0, hand2total=0, hand3total=0, hand4total=0;
    int deck[deckSize] = { 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51 };
    
    shuffle(deck);
 
    int *hand1, *hand2, *hand3, *hand4;

    hand1 = &deck[0];
    hand2 = &deck[13];
    hand3 = &deck[26];
    hand4 = &deck[39];

    cout << "Hand 1: " << endl;
    intoSuit(hand1);
    hand1total = count(hand1);
    cout << "Hand 1 total is: " << hand1total << " points." << endl;

    cout << "\nHand 2: " << endl;
    intoSuit(hand2);
    hand2total = count(hand2);
    cout << "Hand 2 total is: " << hand2total << " points." << endl;

    cout << "\nHand 3: " << endl;
    intoSuit(hand3);
    hand3total = count(hand3);
    cout << "Hand 3 total is: " << hand3total << " points." << endl;
     
    cout << "\nHand 4: " << endl;
    intoSuit(hand4);
    hand4total = count(hand4);
    cout << "Hand 4 total is: " << hand4total << " points." << endl;
    
    system("pause");         
    return 0;   
}