示例#1
0
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++;
    	}
    }
}
示例#3
0
文件: game.c 项目: boothj5/c-head
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);
}
示例#4
0
文件: humanIO.c 项目: duck57/Euchre-C
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");
}
示例#5
0
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));

}
示例#6
0
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;
}