思路
首先判断是不是王牌套装,分以下两种情况:
-
A 是王牌套装并且 B 不是,A 胜利。
-
B 是王牌套装并且 A 不是,B 胜利。
接下来开始比较。如果套装不相等就查找套装,看看谁的套装大谁赢。
如果套装相等就找等级,看看谁的等级大谁赢。
比较时可以采用打表的方法。
代码
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstring>
#include<string>
using namespace std;
char king,A_lv,A_suit,B_lv,B_suit;
//king表示王牌套装,lv表示等级,suit表示套装
char s1[]={'6','7','8','9','T','J','Q','K','A'};
//打表-表示每个字母的等级
char s2[]={'S','H','D','C'};
int main()
{
cin>>king;
cin>>A_lv>>A_suit;
cin>>B_lv>>B_suit;
if(king==A_suit&&king!=B_suit) //如果A有王牌套装并且B没有A肯定获胜
{cout<<"YES"<<endl;return 0;}
if(king==B_suit&&king!=A_suit) //反之,如果B有而A没有,则A输
{cout<<"NO"<<endl;return 0;}
if(A_suit==B_suit)//如果套装一样就找等级
{
int A_ans=0,B_ans=0;
for(int i=0;i<9;++i)
{
if(s1[i]==A_lv) A_ans=i;
if(s1[i]==B_lv) B_ans=i;
//分别找出A和B的等级
}
if(A_ans>B_ans) cout<<"YES"<<endl;
else cout<<"NO"<<endl;//比较
return 0;
}
else //否则比谁的套装大
{
int A_ans=0,B_ans=0;
for(int i=0;i<5;++i)
{
if(s1[i]==A_suit) A_ans=i;
if(s1[i]==B_suit) B_ans=i;
//分别找出A和B的套装
}
if(A_ans>B_ans) cout<<"YES"<<endl;
else cout<<"NO"<<endl;//比较
return 0;
}
return 0;
}