Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cstdlib>
- #include "card.h"
- #include <sstream>
- #include <stdexcept>
- using namespace std;
- Card::Card()
- {
- //wont be using default
- }
- Card::Card(int r, char s)
- {
- if(r <= 13 && r > 0)
- this->r = r;
- else
- throw std::invalid_argument("Rank must be valid (1-13)");
- if(s == 'd' || s == 'D') //diamonds
- this->s = 'D';
- else if(s == 'h' || s == 'H') //hearts
- this->s = 'H';
- else if(s == 's' || s == 'S') //spades
- this->s = 'S';
- else if(s == 'c' || s == 'C') //clubs
- this->s = 'C';
- else
- throw std::invalid_argument("Suit must be valid (H, S, C, D");
- }
- Card::Card(const Card& old)
- {
- r = old.r;
- s = old.s;
- }
- void Card::setCard(int r, char s)
- {
- if(r <= 13 && r > 0)
- this->r = r;
- else
- throw std::invalid_argument("Rank must be valid (1-13)");
- if(s == 'd' || s == 'D') //diamonds
- this->s = 'D';
- else if(s == 'h' || s == 'H') //hearts
- this->s = 'H';
- else if(s == 's' || s == 'S') //spades
- this->s = 'S';
- else if(s == 'c' || s == 'C') //clubs
- this->s == 'C';
- else
- throw std::invalid_argument("Suit must be valid (H, S, C, D");
- }
- int Card::getRank()
- {
- return r;
- }
- bool Card:: operator == (const Card c) const
- {
- if(r == c.r)
- return true;
- else
- return false;
- }
- bool Card:: operator >(const Card c) const
- {
- if(r > c.r)
- return true;
- else
- return false;
- }
- ostream& operator << (ostream& out, const Card c)
- {
- if(c.r == 1)
- out << "A" << c.s;
- else if(c.r > 1 && c.r <= 10)
- out << c.r << c.s;
- else if(c.r == 11)
- out << "J" << c.s;
- else if(c.r == 12)
- out << "Q" << c.s;
- else //must be king
- out << "K" << c.s;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement