From 68376d206d505c26fae14f0397c854a298065bf1 Mon Sep 17 00:00:00 2001 From: "ewe\\yn" Date: Sun, 27 Sep 2020 22:58:09 +0000 Subject: [PATCH] Added debugging, made a number of bug fixes, and fixed naming issue. --- main | Bin 0 -> 259792 bytes main.cpp | 261 +++++++++++++++++++++++++++++++++++++++++++++---------- 2 files changed, 216 insertions(+), 45 deletions(-) diff --git a/main b/main index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..96d50de3ac010a9e36f9467e8a65e6cb4a83f340 100644 GIT binary patch literal 259792 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 z +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 FJOF>0S$_Zk literal 0 HcmV?d00001 diff --git a/main.cpp b/main.cpp index 4cc0fca..c256b7a 100644 --- a/main.cpp +++ b/main.cpp @@ -1,19 +1,20 @@ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Champlain College SDEV-345-81 * * C++ Week 4: Discussion (first semester) - Go Fish (2020/09/20) * - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * Collaborate on the discussion to develop a card game. “Go Fish” is a classic children’s card game + * Collaborate on the discussion to develop a card game. + * “Go Fish” is a classic children’s card game * - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Written by Llewellyn van der Merwe , September 2020 * Copyright (C) 2020. All Rights Reserved * License GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html * - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ #include #include @@ -25,7 +26,7 @@ using namespace std; -class mapper { +class cardDB { protected: /** @@ -54,11 +55,16 @@ protected: map deck_display; public: + /** + * for debugging + **/ + bool debug = false; + // just change this to true to see debug info /** * Constructor to setup the mapper **/ - mapper() { + cardDB() { // for display this->deck_display["H1"] = "Ace of Hearts"; this->deck_display["D1"] = "Ace of Diamonds"; @@ -67,6 +73,7 @@ public: this->deck_display["H2"] = "Two of Hearts"; this->deck_display["D2"] = "Two of Diamonds"; + this->deck_display["S2"] = "Two of Spades"; this->deck_display["C2"] = "Two of Clubs"; this->deck_display["H3"] = "Three of Hearts"; @@ -221,7 +228,7 @@ public: } // check if we can find the card - bool find(string key) { + bool searchDeck(string key) { // the iterator search map::iterator found = this->deck_specifics_a.find(key); // check if it is found @@ -241,7 +248,7 @@ public: } // check if we can find the card - bool find(double key) { + bool searchDeck(double key) { // the iterator search map::iterator found = this->deck_specifics_b.find(key); // check if it is found @@ -267,7 +274,7 @@ public: } }; -class deck : public mapper { +class deck : public cardDB { protected: /** * mode 1 = RANK; 2 = SPECIFIC; @@ -290,7 +297,6 @@ public: stack mixed; deck() { - // setup the mixed deck for (map::iterator i = this->deck_specifics_a.begin(); i != this->deck_specifics_a.end(); ++i) { // random sort the cards @@ -313,6 +319,8 @@ public: break; } } + // if debug mode we check the shuffle + vector debug_deck; // complete the shuffle int not_again[] = {0, 0, 0, 0, 0}; int deck_n = 0; @@ -323,26 +331,41 @@ public: if (1 == deck_n && !this->deck_1.empty()) { // add to real deck this->mixed.push(this->deck_1.top()); + if (this->debug) { + debug_deck.push_back(this->deck_1.top()); + } // remove from tem deck this->deck_1.pop(); } else if (2 == deck_n && !this->deck_2.empty()) { // add to real deck this->mixed.push(this->deck_2.top()); + if (this->debug) { + debug_deck.push_back(this->deck_2.top()); + } // remove from tem deck this->deck_2.pop(); } else if (3 == deck_n && !this->deck_3.empty()) { // add to real deck this->mixed.push(this->deck_3.top()); + if (this->debug) { + debug_deck.push_back(this->deck_3.top()); + } // remove from tem deck this->deck_3.pop(); } else if (4 == deck_n && !this->deck_4.empty()) { // add to real deck this->mixed.push(this->deck_4.top()); + if (this->debug) { + debug_deck.push_back(this->deck_4.top()); + } // remove from tem deck this->deck_4.pop(); } else if (5 == deck_n && !this->deck_5.empty()) { // add to real deck this->mixed.push(this->deck_5.top()); + if (this->debug) { + debug_deck.push_back(this->deck_5.top()); + } // remove from tem deck this->deck_5.pop(); } else { @@ -357,6 +380,14 @@ public: } } } + // if debug mode we check the shuffle + if (this->debug) { + // this is the current deck + cout << __LINE__ << " This is the current deck" << endl; + // setup the reverse map + for(double i : debug_deck) + cout << i << " = " << this->deck_specifics_b[i] << endl; + } } /** @@ -383,9 +414,17 @@ public: map::iterator found = this->deck_ranks_a.find(key); // check if it is found if (found != this->deck_ranks_a.end()) { + // show values in debugging + if (this->debug){ + cout << __LINE__ << " getRankKey [" << key << "] => " << found->second << endl; + } // element found; return found->second; } + // show values in debugging + if (this->debug){ + cout << __LINE__ << " getRankKey [" << key << "] => not found" << endl; + } // element not found return 0; } @@ -474,7 +513,7 @@ public: } }; -class hand : public mapper { +class hand : public cardDB { protected: // the deck in each and bool cards[13][4] = {}; @@ -487,6 +526,10 @@ protected: rank = (int) card; shape = (int) (card * 10000); shape = (shape - (rank * 10000)) / 1000; + // show values in debugging + if (this->debug){ + cout << __LINE__ << " set [" << card << "] R=" << rank << " S=" << shape << " state=" << state << endl; + } // set the state return this->set(rank, shape, state); } @@ -494,6 +537,10 @@ protected: bool set(int rank, int shape, bool state) { // now set the card state this->cards[rank][shape] = state; + // show values in debugging + if (this->debug){ + cout << __LINE__ << " set R=" << rank << " S=" << shape << " state=" << state << endl; + } // always true :) return true; } @@ -501,10 +548,18 @@ protected: // remove the cards locally bool remove(double card, bool found = false) { // check if this card is in the deck - if (found || this->find(card)) { + if (found || this->searchDeck(card)) { + // show values in debugging + if (this->debug){ + cout << __LINE__ << " removed=" << card << endl; + } // was removed so true return this->set(card, false); } + // show values in debugging + if (this->debug){ + cout << __LINE__ << " not removed=" << card << endl; + } // was not removed return false; } @@ -512,18 +567,30 @@ protected: // remove the card locally (may not be needed) bool remove(string card, bool found = false) { // check if this card is in the deck - if (found || this->find(card)) { + if (found || this->searchDeck(card)) { // get the double double d_card = this->get(card); + // show values in debugging + if (this->debug){ + cout << __LINE__ << " removed=[" << d_card << "]=" << card << endl; + } // was removed so true return this->set(d_card, false); } + // show values in debugging + if (this->debug){ + cout << __LINE__ << " not removed=" << card << endl; + } // was not removed return false; } // remove the cards locally (may not be needed) bool remove(int rank) { + // show values in debugging + if (this->debug){ + cout << __LINE__ << " removed=" << rank << endl; + } // there can only be four ranks for (int shape = 1; shape < 5; shape++) { this->set(rank, shape, false); @@ -534,17 +601,30 @@ protected: // the getter bool has(int rank, int shape) { + // show values in debugging + if (this->debug){ + cout << __LINE__ << " has R=" << rank << " S=" << shape << " answer=" << this->cards[rank][shape] << endl; + } // now add the card return this->cards[rank][shape]; } // the getter RANK - bool has(int rank) { + bool has(int rank, bool give) { bool found = false; for (int s = 1; s < 5; s++) { if (this->cards[rank][s]) { double r = this->getDoubleKey(rank, s); - this->lose.push_back(r); + // show values in debugging + if (this->debug && give){ + cout << __LINE__ << " has & give R=" << rank << " S=" << s << " answer=1" << " [" << r << "]" << endl; + } else if (this->debug){ + cout << __LINE__ << " has R=" << rank << " S=" << s << " answer=1" << " [" << r << "]" << endl; + } + // give value to another player + if (give) { + this->lose.push_back(r); + } found = true; } } @@ -575,12 +655,39 @@ public: } // set the cards locally - bool add(double card) { + bool add(int card) { // check if this card is in the deck - if (this->find(card)) { + if (this->searchDeck(card)) { + // show values in debugging + if (this->debug){ + cout << __LINE__ << " add " << card << endl; + } // was set so true return this->set(card, true); } + // show values in debugging + if (this->debug){ + cout << __LINE__ << " did not add " << card << endl; + } + // was not set + return false; + } + + // set the cards locally + bool add(double card) { + // check if this card is in the deck + if (this->searchDeck(card)) { + // show values in debugging + if (this->debug){ + cout << __LINE__ << " add " << card << endl; + } + // was set so true + return this->set(card, true); + } + // show values in debugging + if (this->debug){ + cout << __LINE__ << " did not add " << card << endl; + } // was not set return false; } @@ -588,24 +695,42 @@ public: // set the cards locally (may not be needed) bool add(string card) { // check if this card is in the deck - if (this->find(card)) { + if (this->searchDeck(card)) { // get the double double d_card = this->get(card); + // show values in debugging + if (this->debug){ + cout << __LINE__ << " add [" << d_card << "] " << card << endl; + } // was set so true return this->set(d_card, true); } + // show values in debugging + if (this->debug){ + cout << __LINE__ << " did not add " << card << endl; + } // was not set return false; } // set the cards locally - bool hasCard(double card, bool give = false) { + bool hasCard(double card, bool give) { + // always rest the lose + this->lose.clear(); + // show values in debugging + if (this->debug){ + cout << __LINE__ << " we clear the lose vector" << endl; + } // check if this card is in the deck - if (this->find(card)) { + if (this->searchDeck(card)) { int rank, shape; rank = (int) card; shape = (int) (card * 10000); shape = (shape - (rank * 10000)) / 1000; + // show values in debugging + if (this->debug){ + cout << __LINE__ << " has card [" << card << "]" << " R=" << rank << " S=" << shape << endl; + } // check if we must remove it at the same time if (give) { // get the card @@ -624,40 +749,55 @@ public: } // set the card RANK locally - bool hasCard(int card, bool give = false) { + bool hasCard(int card, bool give) { // always rest the lose this->lose.clear(); // check if this card is in the deck if (card > 0 && card < 14) { + // show values in debugging + if (this->debug){ + cout << __LINE__ << " has card [" << card << "]" << endl; + } // check if we must remove it at the same time if (give) { // get the card - if (this->has(card)) { + if (this->has(card, give)) { // remove since it is found - for (auto c : this->lose) + for (double c : this->lose) { + // show values in debugging + if (this->debug) { + cout << __LINE__ << " lose [" << c << "]" << endl; + } this->remove(c, true); + } return true; } // not found return false; } // return if the card is found - return this->has(card); + return this->has(card, give); } // not a card return false; } // set the cards locally (may not be needed) - bool hasCard(string card, bool give = false) { + bool hasCard(string card, bool give) { + // always rest the lose + this->lose.clear(); // check if this card is in the deck - if (this->find(card)) { + if (this->searchDeck(card)) { // get the double double d_card = this->get(card); int rank, shape; rank = (int) d_card; shape = (int) (d_card * 10000); shape = (shape - (rank * 10000)) / 1000; + // show values in debugging + if (this->debug){ + cout << __LINE__ << " has card [" << card << "=" << d_card << "]" << " R=" << rank << " S=" << shape << endl; + } // check if we must remove it at the same time if (give) { // get the card @@ -682,10 +822,25 @@ public: // ask for a card bool askCard(int card, hand &AHand) { + // show values in debugging + if (this->debug){ + cout << __LINE__ << " ask [" << card << "]" << endl; + } if (card > 0 && AHand.hasCard(card, true)) { vector winnings = AHand.getWinnings(); - for (auto i : winnings) - this->add(i); + for (double c : winnings) { + // show values in debugging + if (this->debug) { + cout << __LINE__ << " winning [" << c << "]" << endl; + } + if (!this->add(c)){ + if (this->debug){ + cout << __LINE__ << " winning ERROR->[" << c << "]" << endl; + } + // break on error + return false; + } + } // cards were found return true; } @@ -695,7 +850,15 @@ public: // ask for a card bool askCard(double card, hand &AHand) { + // show values in debugging + if (this->debug){ + cout << __LINE__ << " ask [" << card << "]" << endl; + } if (AHand.hasCard(card, true)) { + // show values in debugging + if (this->debug) { + cout << __LINE__ << " before add [" << card << "]" << endl; + } // cards were found return this->add(card); } @@ -719,18 +882,16 @@ protected: bool deceit; // allow empty deck bool empty_deck; - // the deck index - int index = 1; // player hands map hands; // opening setup void setupBoard() { // for quick testing -// this->players = 2; -// this->mode = 1; -// this->empty_deck = false; -// return; + //this->players = 2; + //this->mode = 1; + //this->empty_deck = false; + //return; // string to get answers string tmp; // ask the opening questions @@ -857,7 +1018,7 @@ public: } else { cout << "So H1 is the key for Ace of Hearts" << endl; } - cout << "Are you ready to continue?" << endl; + cout << "Player [" << p << "] are you ready to continue?" << endl; cout << "(y/n): "; cin >> yes; if (yes == "y" || yes == "Y" || yes == "yes" || yes == "Yes") { @@ -876,6 +1037,17 @@ public: if (p > this->players) { p = 1; } + // little pause to setup the new player + while (true) { + cout << "Player [" << p << "] are you ready to continue?" << endl; + cout << "(y/n): "; + cin >> yes; + if (yes == "y" || yes == "Y" || yes == "yes" || yes == "Yes") { + break; + } + cin.clear(); + cin.ignore(); + } // reset getting new player get_new_player = false; } @@ -907,16 +1079,14 @@ public: ask = 2; } } - // player questions - cout << "You are player [" << p << "]" << endl; - cout << "We will show your hand in a moment." << endl; // check if we should ask for next player if (ask_next) { + cout << "We will show your hand in a moment." << endl; while (true) { cout << "Please select a player you would like to ask between:" << endl; cout << "[" << f << " - " << l << "] "; cin >> tmp; - if ((tmp >= f || tmp <= l) && tmp != p) { + if (tmp >= f && tmp <= l && tmp != p) { ask = tmp; break; } @@ -934,7 +1104,7 @@ public: cin >> card; // make string uppercase transform(card.begin(), card.end(), card.begin(), ::toupper); - if (this->find(card)) { + if (this->searchDeck(card)) { break; } cin.clear(); @@ -974,10 +1144,11 @@ public: cout << endl; } else { cout << "The new card was added to your hand...." << endl; - cout << "Okay it is now the next players turn!" << endl; - cout << endl; - cout << endl; - cout << endl; + // player questions + cout << "Player [" << p << "] your turn is over." << endl; + cout << endl << endl << endl << endl << endl << endl; + cout << endl << endl << endl << endl << endl << endl; + cout << endl << endl << endl << endl << endl << endl; get_new_player = true; } } else {