deck *make_standard_deck() { deck *newDeck = malloc(sizeof(deck)); int i,s =0,v =1; newDeck->num_cards = 52 ; newDeck->cards = make_card(s, v); for(i = 0;i <= 51; i++){ if(s == 4){ s = 0; //max suit is 4, must reset to 0 to 3 only. v++; //next value in the deck after all suits of the current card } //allocates a new card til 52 unique cards are made newDeck->cards[i] = *make_card(s, v); s++; } return newDeck; }
void pysol_create_cards(card_t * cards) { int id, suit, rank; id = 0; for (suit=0;suit<4;suit++) { for(rank=0;rank<13;rank++) { cards[id] = make_card(suit,rank+1); id++; } } }
static void create_deck(struct game_t *game) { int num_decks; enum cardrank rank; enum cardsuit suit; int i = 0; int j; game->deck_size = calc_deck_size(game); num_decks = game->deck_size / DECK_SIZE; for (j = 0; j < num_decks; j++) for (suit = HEARTS; suit <= CLUBS; suit++) for (rank = TWO; rank <= ACE; rank++) game->deck[i++] = make_card(rank, suit); }
void stat_text(const int playerNum, const int yourBet, const int theirBet) { if (yourBet) printf("\tWe bet %d", yourBet); else printf("\tThey bet %d", theirBet); printf("\t\t%s %d ", "You", playerList[playerNum].tricks); printf("%d %s\n", playerList[(playerNum+2)%4].tricks, playerList[(playerNum+2)%4].name); printf("\t%s:\t", display_trump(trumpCall)); if (compare_card_c(trick[0], make_card(BLANK, NONE), 1, LoNo) == 0) printf("Your lead"); else for (int i=0; i<4; i++) { show_card(trick[i], trumpSuit); printf("\t"); } printf("\n"); }
int main(int argc, char *argv[]) { card **hand; deck *fulldeck; int i, j, k; /* create an array of card pointers */ hand = (card **)malloc(sizeof(card *)*5); /* make a card for each one */ for(i=0;i<5;i++) hand[i] = make_card(i%4, (i*17)%14); /* print out the cards in the hand */ printf("Hand: "); for(i=0;i<5;i++) print_card(hand[i]); printf("\n"); /* make a standard deck of cards */ fulldeck = make_standard_deck(); if (fulldeck == NULL) { printf("make_standard_deck not yet implemented ... exiting\n"); exit(0); } /* print out all of the cards */ for(i=0;i<fulldeck->num_cards;) for(j=0;j<13 && i<fulldeck->num_cards;j++,i++) print_card(&(fulldeck->cards[i])); /* compare some cards */ printf("Compare: "); print_card(&(fulldeck->cards[5])); print_card(&(fulldeck->cards[17])); printf(": %d\n",compare(&(fulldeck->cards[5]),&(fulldeck->cards[17]))); printf("find index: C 5: %d", find_index(fulldeck,0,5)); }
card* make_deck( card* current_card ) { /* Aces to Kings, up the suits (Diamond, Club, Heart, Spade) */ int counter = 0; int value, is_ace; char suits[4] = "DCHS"; //diamond, clubs, hearts, spades card* deck; card* deck2; //Aces value = 1; is_ace = 1; char* name = "A"; while( counter < 4 ) { char nom[256]; nom[0] = *name; nom[1] = suits[counter]; nom[2] = '\0'; current_card = make_card( value, nom, is_ace, current_card); if (counter == 0) { deck = current_card; } if (counter == 1) { deck -> next_card = current_card; deck2 = deck -> next_card; } else { deck2 -> next_card = current_card; deck2 = deck2 -> next_card; } current_card = current_card -> next_card; counter++; } //2 to 9 value++; // value == 2 is_ace = 0; while( value <= 9) { counter = 0; while( counter < 4) { //converts integer value to string, base 10 char name[256]; char *nom; sprintf( &name[0], "%d", value ); name[1] = suits[counter]; name[2] = '\0'; current_card = make_card( value, name, is_ace, current_card); deck2 -> next_card = current_card; deck2 = deck2 -> next_card; current_card = current_card -> next_card; counter++; } value++; } //10 counter = 0; while( counter < 4) { //converts integer value to string, base 10 char name[256]; char *nom; sprintf( &name[0], "%d", value ); name[2] = suits[counter]; name[3] = '\0'; current_card = make_card( value, name, is_ace, current_card); deck2 -> next_card = current_card; deck2 = deck2 -> next_card; current_card = current_card -> next_card; counter++; } value++; //Jack, Queen, King while( value <= 13) { counter = 0; while( counter < 4 ) { char name[265]; name[1] = suits[counter]; name[2] = '\0'; if( value == 11) { //Jacks name[0] = 'J'; current_card = make_card( 10, name, is_ace, current_card); } else if( value == 12) { //Queens name[0] = 'Q'; current_card = make_card( 10, name, is_ace, current_card); } else if(value == 13) { //Kings name[0] = 'K'; current_card = make_card( 10, name, is_ace, current_card); } deck2 -> next_card = current_card; deck2 = deck2 -> next_card; current_card = current_card -> next_card; counter++; } value++; } return deck; }