比较扑克牌大小(输入总是正确)

来源:互联网 发布:淘宝怎么看别人的销量 编辑:程序博客网 时间:2024/05/16 09:33
#include <iostream>#include <string>using namespace std;class CompareCards{      static int checkcardstype(string& str);      static char checkcardssize(char s);      public:      const static string& compare(string& first,string & second);};const string& err="ERROR";const string& equ="EQUEL";int CompareCards::checkcardstype(string& card){      switch(card.size())      {            case 1:            return 1;            case 2:            return 1;            case 3:            return 2;            case 5:            if(card[0]=='1')            return 2;            else            return 3;            case  8:            return 3;            case  9:            return 4;            case  10:            return 4;            case 7:            return 9;            case 11:             if(card[0]=='1')            return 9;            else            return 19;            default:            return 0;      }}char CompareCards::checkcardssize(char s){      switch(s)      {            case '1':            return 'a';            case 'J':            return 'b';            case 'Q':            return 'c';            case 'K':            return 'd';            case 'A':            return 'e';            case '2':            return 'f';            default:            return s;      }}const string& CompareCards::compare(string& first, string& second){      if(!CompareCards::checkcardstype(first) || !CompareCards::checkcardstype(second))      return err;      if(CompareCards::checkcardstype(first)==CompareCards::checkcardstype(second))      {            if(CompareCards::checkcardssize(first[0])>CompareCards::checkcardssize(second[0]))            {                  return first;            }else if(CompareCards::checkcardssize(first[0])<CompareCards::checkcardssize(second[0]))            {                  return second;            }else            {                  return equ;            }      }      if(CompareCards::checkcardstype(first)+CompareCards::checkcardstype(second)<8)      {            return err;      }      if(CompareCards::checkcardstype(first)>CompareCards::checkcardstype(second))      {            return first;      }else      {            return second;      }}int main(){      string cards[2];      string in;      getline(cin,in);      int i=0;      while(in[i]!='-')      {            ++i;      }      cards[0].assign(in,0,i);      cards[1].assign(in,i+1,string::npos);    cout << CompareCards::compare(cards[0],cards[1])<< endl;    return 0;}

0 0
原创粉丝点击