Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Dave B's Clock Patience. "pack", "outpack" and "played" arrays are indexed$
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- #define UPBDECK 52
- #define LWBDECK 1
- #define FALSE 0
- #define TRUE 1
- void printgame(int CARD, char*outdeck[]);
- typedef struct {int pipval; char *suit;} CARD;
- CARD pack[UPBDECK +1], outpack[UPBDECK + 1];
- int played [UPBDECK +1]; /* boolean array of 1 and 0 to show if card played */
- int cardcount = 0, gamecount = 1, gameswon = 0;
- char *stars = "****";
- char *hearts = "HRTS";
- char *clubs = "CLBS";
- char *diamonds = "DMDS";
- char *spades = "SPDS";
- char *cardval = "*A23456789TJQK";
- void shuffle (CARD *deck)
- { CARD temp; int i,j;
- for (i = LWBDECK; i <= UPBDECK; i++)
- {
- j = i + random() % (UPBDECK -i +1);
- temp = deck[i]; deck[i] = deck [j]; deck[j] = temp;
- /* printf ("i= %d, j= %d, %c %s\n",
- i,j,cardval[deck[i].pipval],deck[i].suit); */
- }
- }
- void initialise (CARD *deck)
- /* initialise the pack and the "played" booleans*/
- { int i, j, k = 1; char *suit;
- for (j = 1; j <= 4; j++)
- { switch (j) {
- case 1: suit = hearts; break;
- case 2: suit = clubs; break;
- case 3: suit = diamonds; break;
- case 4: suit = spades; break;
- }
- for (i = 1; i<= 13; i++)
- { deck[k].pipval = i; deck[k].suit = suit;
- /* printf ("%c %s\n", cardval[deck[k].pipval],
- deck[k].suit); */
- outpack[k].pipval =0; outpack[k].suit = stars;
- k++;
- /* k is incremented within a 1 -> 13 loop inside an outer 1 -> 4 loop Hence it cannot exceed 52 */
- }
- }
- /* printgame(outpack); */
- /*initialise the booleans */
- for (i = LWBDECK -1; i <= UPBDECK; i++) played[i] = FALSE;
- }
- int main (char argc, char *argv[])
- {
- int i, j , kingcount, pointer = UPBDECK;
- /* uncomment the next line if you want a genuinely random sequence once program is fully working
- */
- /* srandom((unsigned int) time(NULL)); */
- initialise(pack);
- shuffle(pack);
- /* code here to play the game including call of setoutpack for every card turned up */
- printgame(outdeck);
- {
- int i = 1 ;
- printf ("0UTCOME OF THE GAME WAS AS FOLLOWS");
- while(i < 13)
- {
- printf("%c %s %c %s %c %s\n", cardval[outdeck[i].pipval], outdeck[i].suit, ca$
- i += 3;
- }
- printf("\n\n\n");
- while (i >= 13 && i <= 20)
- {
- printf("%c %s %c %s\n", cardval[outdeck[i].pipval], outdeck[i].suit, ca$
- i += 2;
- }
- printf("\n\n\n");
- while(i > 20 && 1 <= 32)
- {
- printf("%c %s %c %s %c %s\n", cardval[outdeck[i].pipval], outdeck[i].suit, ca$
- i += 3;
- }
- printf("\n\n\n");
- while(i > 32 && i <= 40)
- {
- printf("%c %s %c %s\n", cardval[outdeck[i].pipval], outdeck[i].suit, ca$
- i += 2;
- }
- printf("\n\n\n");
- while(i > 40 && i <= 52)
- {
- printf("%c %s %c %s %c %s\n", cardval[outdeck[i].pipval], outdeck[i].suit, ca$
- i += 3;
- }
- printf("\n\n\n");
- }
- }/*end of main */
Add Comment
Please, Sign In to add comment