From 94ac292f32d7aab726095205cb3cce68d6b52d0b Mon Sep 17 00:00:00 2001 From: cdez Date: Tue, 22 Oct 2024 08:01:11 -0700 Subject: [PATCH] Create assignment four, commit the cards library that is currently a side project. --- assignmentFour/medicalRecords.cpp | 0 assignmentFour/videogamer.cpp | 0 cards/cards | Bin 0 -> 37784 bytes cards/cards.cpp | 304 ++++++++++++++++++++++++++++++ cards/cards.h | 38 ++++ 5 files changed, 342 insertions(+) create mode 100644 assignmentFour/medicalRecords.cpp create mode 100644 assignmentFour/videogamer.cpp create mode 100755 cards/cards create mode 100644 cards/cards.cpp create mode 100644 cards/cards.h diff --git a/assignmentFour/medicalRecords.cpp b/assignmentFour/medicalRecords.cpp new file mode 100644 index 0000000..e69de29 diff --git a/assignmentFour/videogamer.cpp b/assignmentFour/videogamer.cpp new file mode 100644 index 0000000..e69de29 diff --git a/cards/cards b/cards/cards new file mode 100755 index 0000000000000000000000000000000000000000..22860201e090bef7060359f370c8e365610ee653 GIT binary patch literal 37784 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 literal 0 HcmV?d00001 diff --git a/cards/cards.cpp b/cards/cards.cpp new file mode 100644 index 0000000..0e6cda0 --- /dev/null +++ b/cards/cards.cpp @@ -0,0 +1,304 @@ +/* +Program Name: Cards +Process: This is primarily a definition of a card class, for some terminal card games. +Function Input/Parameters: ??? +Function Output/Parameters: ??? +Function Output/Returned: ??? +Device Input/Device: ??? +Device Output/Monitor: ??? +Dependencies: ??? +*/ + +#include "cards.h" + +using namespace std; +// using namespace Cards; + +// class definitions +class Card +{ +public: + Card(char value, char suit) + { + // store the value and suit. (possible values 2-9, T, J, Q, K, A) + cardValue = value; + cardSuit = suit; + // get the numerical value of the card, casting from string to num where possible. (2-9) + if ((cardValue >= 2) || (cardValue <= 9)) + { + // cast the character to number. + cardNumericalValue = (int)cardValue - 48; // numerical values 2-9 only + } + // face values here. + if (cardValue == 'T') + { + // 'ten' card + cardNumericalValue = 10; + } + if (cardValue == 'J') + { + // jack + cardNumericalValue = 11; + } + if (cardValue == 'Q') + { + // queen + cardNumericalValue = 12; + } + if (cardValue == 'K') + { + // king + cardNumericalValue = 13; + } + // special 1/Ace card here + if (cardValue == 'A') + { + cardNumericalValue = 1; + } + // add the cardValue and cardSuit to the string + fullCard = fullCard + cardValue; + fullCard = fullCard + cardSuit; + } + int getCardValue() + { + return cardNumericalValue; + } + char getCardRawValue() + { + return cardValue; + } + char getCardSuit() + { + return cardSuit; + } + string getFullCard() + { + return fullCard; + } + void switchComparison(CardSwitch switchComp = VALUE) + { + // + if(switchComp == VALUE) + { + // + Card::compareValue = true; + Card::compareSuit = false; + Card::compareCard = false; + } + else if(switchComp == SUIT) + { + Card::compareValue = false; + Card::compareSuit = true; + Card::compareCard = false; + } + else + { + Card::compareValue = false; + Card::compareSuit = false; + Card::compareCard = true; + } + } + void switchInput(CardSwitch switchComp = FULLCARD) + { + // + if (switchComp == VALUE) + { + // + Card::inputValue = true; + Card::inputSuit = false; + Card::inputCard = false; + } + else if (switchComp == SUIT) + { + Card::inputValue = false; + Card::inputSuit = true; + Card::inputCard = false; + } + else + { + Card::inputValue = false; + Card::inputSuit = false; + Card::inputCard = true; + } + } + void switchOutput(CardSwitch switchComp = FULLCARD) + { + // + if (switchComp == VALUE) + { + // + Card::outputValue = true; + Card::outputSuit = false; + Card::outputCard = false; + } + else if (switchComp == SUIT) + { + Card::outputValue = false; + Card::outputSuit = true; + Card::outputCard = false; + } + else + { + Card::outputValue = false; + Card::outputSuit = false; + Card::outputCard = true; + } + } + friend bool operator==(const Card &cardOne, const Card &cardTwo) + { + // operator== can decide whether or not it will compare the + // values of cards, suits of cards, or complete cards, defaults to + // comparing values of cards only. + // to switch the comparison operator, use the switchComparison function + // to switch how the comparison operator works. + if(compareSuit) + { + return (cardOne.cardSuit == cardTwo.cardSuit); + } + else if(compareCard) + { + return ((cardOne.cardNumericalValue == cardTwo.cardNumericalValue) + && (cardOne.cardSuit == cardTwo.cardSuit)); + } + else + { + return (cardOne.cardNumericalValue == cardTwo.cardNumericalValue); + } + } + friend bool operator<(const Card &cardOne, const Card &cardTwo) + { + // compare cardOne's value to cardTwo's value with less than function. + // THIS WILL ONLY CHECK NUMERICAL VALUE + return (cardOne.cardNumericalValue < cardTwo.cardNumericalValue); + } + friend ostream &operator<<(ostream &output, const Card &cardOut) + { + // operator<< can decide whether or not it will output the + // values of cards, suits of cards, or complete cards, defaults to + // printing full card value. + // to switch the output operator, use the switchOutput function + // to switch how the output operator works. + if (outputValue) + { + return output << cardOut.cardValue; + } + else if (outputSuit) + { + return output << cardOut.cardSuit; + } + else + { + return output << cardOut.fullCard; + } + } + friend istream &operator>>(istream &input, Card &cardIn) + { + // operator>> can decide whether or not it will input the + // values of cards, suits of cards, or complete cards, defaults to + // getting input of full card value in format NumberSuit (aka 2D for 2 of Diamonds). + // to switch the input operator, use the switchInput function + // to switch how the input operator works. + + // get a temporary string in. + string inStr; + // read in the input into the temp string. + input >> inStr; + // grab the input based on what is currently set for the class. + if (outputValue) + { + // assume the input is a single value, cast from string to char + cardIn.cardNumericalValue = atoi(inStr.c_str()); + cardIn.cardValue = (char)cardIn.cardNumericalValue + 48; // needs testing. + return input; + } + else if (outputSuit) + { + // assume the input is a single value, cast from string to char + cardIn.cardSuit = inStr.c_str()[0]; // this may not work. + return input; + } + else + { + cardIn.cardNumericalValue = atoi(inStr.c_str()); + cardIn.cardValue = (char)cardIn.cardNumericalValue + 48; + cardIn.fullCard = inStr; + return input; + } + } + +private: + char cardValue; + char cardSuit; + int cardNumericalValue; + string fullCard; + // comparison defaults to value + static bool compareValue; // unused? + static bool compareSuit; + static bool compareCard; + // output defaults to full card value + static bool outputValue; + static bool outputSuit; + static bool outputCard; + // input defaults to full card value + static bool inputValue; + static bool inputSuit; + static bool inputCard; +}; + +// function prototypes + +bool compareValue = true; +bool compareSuit = false; +bool compareCard = false; +bool outputValue = false; +bool outputSuit = false; +bool outputCard = true; +bool inputValue = false; +bool inputSuit = false; +bool inputCard = true; + +// main program +int main(int argc, char **argv) +{ + // create array of cards called deck. + vector deck; + // have two hands for cards + vector humanHand; + vector computerHand; + // char array for the setups + char suits[] = {'C', 'D', 'H', 'S'}; + int suitsLen = sizeof(suits) / sizeof(suits[0]); + // char values[] = {'A','2','3','4','5','6','7','8','9','T','J','Q','K'}; + char values[] = {'K', 'Q', 'J', 'T', '9', '8', '7', '6', '5', '4', '3', '2', 'A'}; + int valuesLen = (sizeof(values) / sizeof(values[0])); + // game setup + // create deck by loop for 1 - 13 with each suit {(H)earts, S(pades), C(lubs), D(iamonds)}. + // use double for loop, outer for suits, inner for values. + for (int deckCounter = 0; deckCounter < suitsLen; deckCounter++) + { + // creates each suit + for (int suitCounter = 0; suitCounter < valuesLen; suitCounter++) + { + // creates each card/value + deck.push_back(Card(values[suitCounter], suits[deckCounter])); + } + } + // shuffle deck randomly? (use shuffle function from algorithm library) + // generate a random number (which is so much harder in CPP because they 'frown upon' using the C STL rand stuff) + default_random_engine randNumGen(time(NULL)); + // shuffle the deck using that rng engine. + shuffle(deck.begin(), deck.end(), randNumGen); + // return 0 + return 0; +} + +/* THIS BELOW CODE IS FOR CHECKING THE DECK +for (int tempIterator = 0; tempIterator < 52; tempIterator++) +{ + // print off each card to see if it was correctly made. + cout << tempIterator << ": " << deck[tempIterator].getFullCard() << " | "; +} +cout << endl; +*/ + +// compiles using "g++ -Wall -pedantic cards.cpp -o cards" - note to programmer \ No newline at end of file diff --git a/cards/cards.h b/cards/cards.h new file mode 100644 index 0000000..698b495 --- /dev/null +++ b/cards/cards.h @@ -0,0 +1,38 @@ +#ifndef CARDS_UTIL +#define CARDS_UTIL + +#include +#include +#include +#include +#include +#include +#include +#include + +// enumerated definitions +typedef enum +{ + FULLCARD = 0, + VALUE = 1, + SUIT = 2 +} CardSwitch; + +namespace Cards +{ + // + class Card + { + public: + Card(char value, char suit); + int getCardValue(); + char getCardRawValue(); + char getCardSuit(); + std::string getFullCard(); + void switchComparison(CardSwitch switchComp = VALUE); + void switchInput(CardSwitch switchComp = FULLCARD); + void switchOutput(CardSwitch switchComp = FULLCARD); + friend bool operator==(const Card &cardOne, const Card &cardTwo); + }; +} +#endif \ No newline at end of file