Advertisement
Guest User

Untitled

a guest
Nov 30th, 2018
185
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.89 KB | None | 0 0
  1. #include <cstdlib>
  2. #include "card.h"
  3. #include <sstream>
  4. #include <stdexcept>
  5. using namespace std;
  6.  
  7. Card::Card()
  8. {
  9.     //wont be using default
  10. }
  11.  
  12. Card::Card(int r, char s)
  13. {
  14.     if(r <= 13 && r > 0)
  15.         this->r = r;
  16.     else
  17.         throw std::invalid_argument("Rank must be valid (1-13)");
  18.  
  19.     if(s == 'd' || s == 'D')        //diamonds
  20.         this->s = 'D';
  21.     else if(s == 'h' || s == 'H')   //hearts
  22.         this->s = 'H';
  23.     else if(s == 's' || s == 'S')   //spades
  24.         this->s = 'S';
  25.     else if(s == 'c' || s == 'C')   //clubs
  26.         this->s = 'C';
  27.     else
  28.         throw std::invalid_argument("Suit must be valid (H, S, C, D");
  29. }
  30.  
  31. Card::Card(const Card& old)
  32. {
  33.     r = old.r;
  34.     s = old.s;
  35. }
  36.  
  37. void Card::setCard(int r, char s)
  38. {
  39.     if(r <= 13 && r > 0)
  40.         this->r = r;
  41.     else
  42.         throw std::invalid_argument("Rank must be valid (1-13)");
  43.  
  44.     if(s == 'd' || s == 'D')        //diamonds
  45.         this->s = 'D';
  46.     else if(s == 'h' || s == 'H')   //hearts
  47.         this->s = 'H';
  48.     else if(s == 's' || s == 'S')   //spades
  49.         this->s = 'S';
  50.     else if(s == 'c' || s == 'C')   //clubs
  51.         this->s == 'C';
  52.     else
  53.         throw std::invalid_argument("Suit must be valid (H, S, C, D");
  54. }
  55.  
  56. int Card::getRank()
  57. {
  58.     return r;
  59. }
  60.  
  61.  bool Card:: operator == (const Card c) const
  62.  {
  63.      if(r == c.r)
  64.          return true;
  65.      else
  66.          return false;
  67.  }
  68.  
  69.  bool Card:: operator >(const Card c) const
  70.  {
  71.      if(r > c.r)
  72.          return true;
  73.      else
  74.          return false;
  75.  }
  76.  
  77.  ostream& operator << (ostream& out, const Card c)
  78.  {
  79.      if(c.r == 1)
  80.          out << "A" << c.s;
  81.      else if(c.r > 1 && c.r <= 10)
  82.          out << c.r << c.s;
  83.      else if(c.r == 11)
  84.          out << "J" << c.s;
  85.      else if(c.r == 12)
  86.          out << "Q" << c.s;
  87.      else      //must be king
  88.          out << "K" << c.s;
  89.  }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement