#include #include "cardpile.h" bool colormatch(suit_t s1, suit_t s2) { int a=0; int b=0; switch(s1) { case DIAMONDS: a=1; break; case HEARTS: a=1; break; case CLUBS: a=2; break; case SPADES: a=2; break; default: printf("Wrong value at line %d in file %s \n",__LINE__,__FILE__); exit(EXIT_FAILURE); } switch(s2) { case DIAMONDS: b=1; break; case HEARTS: b=1; break; case CLUBS: b=2; break; case SPADES: b=2; break; default: printf("Wrong value at line %d in file %s \n",__LINE__,__FILE__); exit(EXIT_FAILURE); } return (a == b); } char suittochar(suit_t suit) { switch(suit) { case DIAMONDS: return 'D'; break; case HEARTS: return 'H'; break; case CLUBS: return 'C'; break; case SPADES: return 'S'; break; default: printf("Wrong value at line %d in file %s \n",__LINE__,__FILE__); exit(EXIT_FAILURE); } } char *ranktostring(rank_t rank) { switch(rank) { case TWO: return "2"; break; case THREE: return "3"; break; case FOUR: return "4"; break; case FIVE: return "5"; break; case SIX: return "6"; break; case SEVEN: return "7"; break; case EIGHT: return "8"; break; case NINE: return "9"; break; case TEN: return "10"; break; case JACK: return "J"; break; case QUEEN: return "Q"; break; case KING: return "K"; break; case ACE: return "A"; break; default: printf("Wrong value at line %d in file %s \n",__LINE__,__FILE__); exit(EXIT_FAILURE); } } rank_t successor(rank_t rank) { switch(rank) { case TWO: return THREE; break; case THREE: return FOUR; break; case FOUR: return FIVE; break; case FIVE: return SIX; break; case SIX: return SEVEN; break; case SEVEN: return EIGHT; break; case EIGHT: return NINE; break; case NINE: return TEN; break; case TEN: return JACK; break; case JACK: return QUEEN; break; case QUEEN: return KING; break; case KING: return ACE; break; case ACE: return TWO; break; default: printf("Wrong value at line %d in file %s \n",__LINE__,__FILE__); exit(EXIT_FAILURE); } } /* gcc -pedantic -ansi -Wall -Wextra -Wshadow -Wredundant-decls -Werror klondike.c cardpile.c COURSE_cardpile.o -o klondike */