Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <math.h>
- #include <string.h>
- const char ranks[] = {'2', '3', '4', '5', '6', '7', '8', '9', 'T', 'J', 'Q', 'K', 'A'};
- const char suits[] = {'H', 'D', 'S', 'C'};
- /*
- Returns char if valid suit
- */
- char isValidRank(char c){
- char result='0';
- int lengthofranks = sizeof(ranks) / sizeof(ranks[0]);
- for(int i =0;i<lengthofranks;i++){
- if(c==ranks[i]){
- result = '1';
- }
- }
- //returns 1 if 'c' is in ranks[], 0 if it isnt.
- return result;
- }
- /*
- Returns char of 1 if valid suit otherwise it becomes 0
- */
- char isValidSuit(char c){
- char result='0';
- int lengthofsuits = sizeof(suits) / sizeof(suits[0]);
- for(int i = 0;i<lengthofsuits;i++){
- if(c ==suits[i]){
- result = '1';
- }
- }
- //printf("%c",result);
- return result;
- }
- /*
- Returns char if valid suit is entered
- */
- char getTrump(){
- int errormsg = 0;
- int flagforisvalidsuit;
- char trumpsuit[1];
- char trump_suit;
- char flag1;
- do{
- if(errormsg){
- printf("Try again please\n");
- }
- printf("What is the trump suit?\n");
- scanf(" %s", trumpsuit);
- trump_suit = trumpsuit[0];
- flag1 = isValidSuit(trump_suit);
- if(flag1=='0' || (strlen(trumpsuit) != 1)){
- flagforisvalidsuit = 1;
- errormsg = 1;
- } else if((flag1 == '1') && (strlen(trumpsuit) == 1)){
- flagforisvalidsuit = 0;
- printf("Successfully added %c as trump suit.\n",trumpsuit[0]);
- return trump_suit;
- }
- } while(flagforisvalidsuit);
- // never gets out of while loop, just used this for debugging.
- printf("out of while loop");
- }
- int main() {
- char trump_suit = getTrump();
- char player1_card[2];
- char player2_card[2];
- char player3_card[2];
- char player4_card[2];
- char player1_rank;
- char player1_suit;
- char player2_rank;
- char player2_suit;
- char player3_rank;
- char player3_suit;
- char player4_rank;
- char player4_suit;
- char flagforrank;
- char flagforsuit;
- int question1flag = 1;
- int question2flag = 0;
- int question3flag = 0;
- int question4flag = 0;
- int flagloop = 1;
- while(flagloop){
- if(question1flag){
- printf("Enter player 1's card(Rank followed by suit): \n");
- scanf(" %s",player1_card);
- flagforrank = isValidRank(player1_card[0]);
- flagforsuit = isValidSuit(player1_card[1]);
- if((flagforrank=='0') || (flagforsuit=='0') || (strlen(player1_card)!=2)){
- printf("Invalid Card Please Re Enter.");
- } else{
- player1_rank = player1_card[0];
- player1_suit = player1_card[1];
- question1flag = 0;
- question2flag = 1;
- }
- }
- if(question2flag){
- printf("Enter player 2's card(Rank followed by suit): \n");
- scanf(" %s",player2_card);
- flagforrank = isValidRank(player2_card[0]);
- flagforsuit = isValidSuit(player2_card[1]);
- if((flagforrank=='0') || (flagforsuit=='0') || (strlen(player2_card)!=2)){
- printf("Invalid Card Please Re Enter.");
- } else{
- player2_rank = player2_card[0];
- player2_suit = player2_card[1];
- question2flag = 0;
- question3flag = 1;
- }
- }
- if(question3flag){
- printf("Enter player 3's card(Rank followed by suit): \n");
- scanf(" %s",player3_card);
- flagforrank = isValidRank(player3_card[0]);
- flagforsuit = isValidSuit(player3_card[1]);
- if((flagforrank=='0') || (flagforsuit=='0') || (strlen(player3_card)!=2)){
- printf("Invalid Card Please Re Enter.");
- } else{
- player3_rank = player3_card[0];
- player3_suit = player3_card[1];
- question3flag = 0;
- question4flag = 1;
- }
- }
- if(question4flag){
- printf("Enter player 4's card(Rank followed by suit): \n");
- scanf(" %s",player4_card);
- flagforrank = isValidRank(player4_card[0]);
- flagforsuit = isValidSuit(player4_card[1]);
- if((flagforrank=='0') || (flagforsuit=='0') || (strlen(player4_card)!=2)){
- printf("Invalid Card Please Re Enter.");
- } else{
- player4_rank = player4_card[0];
- player4_suit = player4_card[1];
- question4flag = 0;
- flagloop = 0;
- }
- }
- }
- printf("%c%c, ",player1_card[0],player1_card[1]);
- printf("%c%c, ",player2_card[0],player2_card[1]);
- printf("%c%c, ",player3_card[0],player3_card[1]);
- printf("%c%c, ",player4_card[0],player4_card[1]);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement