Sponsored Content
Top Forums Programming Need help with Card Dealing Program Post 302508346 by Izzy123 on Monday 28th of March 2011 01:02:08 AM
Old 03-28-2011
Need help with Card Dealing Program

I'm currently making a card dealing program, it is suppose to display a list of cards like this:
"Ace of Heart, is red"
"Two of Heart, is red"
.
.
"Ace of Spade, is black"
and so on for all suits and numbers.

here is my current code:
Code:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

struct card { 
 const char *face;
 const char *suit;
 const char *color;
};

typedef struct card Card;
typedef unsigned char pairs;

const char *face[] = { "Ace", "Two", "Three", "Four", "Five","Six", "Seven",
                                  "Eight", "Nine", "Ten","Jack", "Queen", "King"};
const char *suit[] = { "Hearts", "Diamonds", "Clubs", "Spades"};
const char *color[]= {"Black","Red"};
void printdeck( const Card * const );
void fillDeck( Card * const, const char *[], const char *[] ,const char *[]);
void deal(card cards[52], card hands[5][5]);
int main()
{
int hand,cd,winner;
card hands[5][5],handssorted[5][5];
pairs numpairs[5],highest;
Card deck[52];
srand( time( NULL) );
fillDeck( deck, face, suit, color );
printdeck(deck);
printf("\n ----------------------------------------------------------\n");

system("pause");
return 0;

}
//------------------------------------------------------------------------------------------------------
void fillDeck( Card * const wDeck, const char * wFace[], const char * wSuit[], const char * wColor[])
{
		   int i;
		   for ( i = 0; i <= 51; i++ ) { 
		      wDeck[i].face  = wFace[ i % 13 ];
		      wDeck[i].suit  = wSuit[ i / 13 ];
		      wDeck[i].color = wColor[i%2];
        }
}
//-----------------------------------------------------------------------------------------------------
void shuffle( Card * const wDeck )
{
		   int i, j;
		   Card temp;
		   for ( i = 0; i <= 51; i++ ) { 
		      j = rand() % 52;
		      temp = wDeck[ i ];
		      wDeck[ i ] = wDeck[ j ];
		      wDeck[ j ] = temp;
}
}
//-----------------------------------------------------------------------------------------------------------
void printdeck( const Card * const wDeck )
{
           int i;
		   for ( i = 0; i <= 51; i++ ){
		      printf( "\t%s\t of \t%-8s is \t%s \n \t", wDeck[i].face, 
		              wDeck[i].suit,wDeck[i].color,
		             ( i + 1 ) % 2 ? '\t' : '\n' );}
}

but the output i get it wrong because it shows:
"Ace of Hearts is Black"
"Two of Hearts is Red"
"Three of Hearts is Black"
.
.
the color displayed is wrong. Im not sure what im doing wrong, can anyone pls help.
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Help in dealing with arra

I am readinga file lin by line and based craeting a arry of unique elemenst from the second column of the line. However when i coem out of the while loop my array becomes empty , can eny one tell me what I would be doing wrong #!/bin/bash logfile="./mylog.dat" begin=100 end="$(( $begin +... (5 Replies)
Discussion started by: jojan
5 Replies

2. UNIX Desktop Questions & Answers

Does Red Hat Fedora support Nvidia card 8800GTX and 260 card?

Does Red Hat Fedora support Nvidia card 8800GTX and 260 card? Does any Linux OS support Nvidia card? (1 Reply)
Discussion started by: sito
1 Replies

3. UNIX and Linux Applications

webinject - dealing with popups

Hello We have a webapp that launches a link in a popup. We need to use webinject to check the content of that popup but have been so far unsuccessful. We use webinject as a nagios plugin. Does anyone have any experience of using/configuring webinject and know if this is possible or not? ... (1 Reply)
Discussion started by: skewbie
1 Replies

4. Shell Programming and Scripting

Dealing with files with spaces in the name

Hello, I'm a computer science major and I'm having problems dealing with file names with spaces in them. Particularly I'm saving a file name in a variable and then using the variable in a compare function i.e. a='te xt.txt' b='file2.txt' cmp $a $b If anyone could help me with this particular... (10 Replies)
Discussion started by: jakethegreycat
10 Replies

5. Shell Programming and Scripting

cp not dealing with variable properly? please help

I am having trouble with a script that is supposed to : a)take all the jpg pictures in a given directory/parameter and create thumbnails of it in a directory on the desktop. e.g from /here/are/the/files.jpg to ~/Desktop/parser-the/files.png this is my script: all the individual parts... (2 Replies)
Discussion started by: orochinagi
2 Replies

6. UNIX and Linux Applications

Dealing with geany core

Geany : Home Page, the text editor, sometimes crashes and leaves a geany.core file. This is a binary file and supposedly contains all unsaved work and possibly some other information. Does anyone know how to deal with this file? (2 Replies)
Discussion started by: figaro
2 Replies

7. Shell Programming and Scripting

Dealing with multiple files

Korn Shell I have hundreds of small files like below created every day. A midnight cron job moves them to the location /u04/temp/logs But sometimes I have to manually move these files based a certain dates or time. I have two basic requirements 1.Using mv command I want to move all .dat... (2 Replies)
Discussion started by: kraljic
2 Replies

8. UNIX for Dummies Questions & Answers

Dealing with sum

I have file input 1/1/2013 1AS030A 0 1083 CHINA 1/1/2013 1AS030B 0 675 KOREA 1/1/2013 1AS035A 162 662 CHINA 1/1/2013 1AS035B 51 799 INDIA 1/1/2013 1AS035C 0 731 CHINA 1/2/2013 1AS073A 10 1375 KOREA... (5 Replies)
Discussion started by: radius
5 Replies

9. Shell Programming and Scripting

Dealing with edge-list

I have an edge-list with nodes, edge.txt A B B J J H C A G H G A A C K G I have another file which tells me which of these nodes are important, input.txt G C A (3 Replies)
Discussion started by: Sanchari
3 Replies

10. Programming

Dealing with XML comments

I'm writing my own simple XML parser as an experiment. It's a lot more complicated than it's supposed to be. Things supposedly forbidden in XML comments happen all the time in the wild. You're never, ever supposed to find -- inside <!-- xml comments --> but in practice, you don't just find... (2 Replies)
Discussion started by: Corona688
2 Replies
CRIBBAGE(6)							 BSD Games Manual						       CRIBBAGE(6)

NAME
cribbage -- the card game cribbage SYNOPSIS
cribbage [-eqr] DESCRIPTION
cribbage plays the card game cribbage, with the program playing one hand and the user the other. The program will initially ask the user if the rules of the game are needed - if so, it will print out the appropriate section from According to Hoyle with more(1). cribbage options include: -e When the player makes a mistake scoring his hand or crib, provide an explanation of the correct score. (This is especially useful for beginning players.) -q Print a shorter form of all messages - this is only recommended for users who have played the game without specifying this option. -r Instead of asking the player to cut the deck, the program will randomly cut the deck. cribbage first asks the player whether he wishes to play a short game ( ``once around'', to 61) or a long game ( ``twice around'', to 121). A response of 's' will result in a short game, any other response will play a long game. At the start of the first game, the program asks the player to cut the deck to determine who gets the first crib. The user should respond with a number between 0 and 51, indicating how many cards down the deck is to be cut. The player who cuts the lower ranked card gets the first crib. If more than one game is played, the loser of the previous game gets the first crib in the current game. For each hand, the program first prints the player's hand, whose crib it is, and then asks the player to discard two cards into the crib. The cards are prompted for one per line, and are typed as explained below. After discarding, the program cuts the deck (if it is the player's crib) or asks the player to cut the deck (if it's its crib); in the latter case, the appropriate response is a number from 0 to 39 indicating how far down the remaining 40 cards are to be cut. After cutting the deck, play starts with the non-dealer (the person who doesn't have the crib) leading the first card. Play continues, as per cribbage, until all cards are exhausted. The program keeps track of the scoring of all points and the total of the cards on the table. After play, the hands are scored. The program requests the player to score his hand (and the crib, if it is his) by printing out the appro- priate cards (and the cut card enclosed in brackets). Play continues until one player reaches the game limit (61 or 121). A carriage return when a numeric input is expected is equivalent to typing the lowest legal value; when cutting the deck this is equivalent to choosing the top card. Cards are specified as rank followed by suit. The ranks may be specified as one of: 'a', '2', '3', '4', '5', '6', '7', '8', '9', 't', 'j', 'q', and 'k', or alternatively, one of: 'ace', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten', 'jack', 'queen', and 'king'. Suits may be specified as: 's', 'h', 'd', and 'c', or alternatively as: 'spades', 'hearts', 'diamonds', and 'clubs'. A card may be specified as: ``<rank> <suit>'', or: ``<rank> of <suit>''. If the single letter rank and suit designations are used, the space separating the suit and rank may be left out. Also, if only one card of the desired rank is playable, typing the rank is sufficient. For example, if your hand was ``2H, 4D, 5C, 6H, JC, and KD'' and it was desired to discard the king of diamonds, any of the following could be typed: 'k', 'king', 'kd', 'k d', 'k of d', 'king d', 'king of d', 'k diamonds', 'k of diamonds', 'king diamonds', 'king of diamonds'. FILES
/usr/games/cribbage /var/games/criblog /usr/share/games/cribbage.instr AUTHORS
Earl T. Cohen wrote the logic. Ken Arnold added the screen oriented interface. BSD
May 31, 1993 BSD
All times are GMT -4. The time now is 02:53 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy