扑克牌游戏----花色从大到小按黑桃(Spade)、红桃(Heart)、梅花(Club)、方块(Diamond)排列

输入N+1行数据,输入的第一行,是一个整数N,表示有N局游戏(N组数据)。
接下来的N行是N组数据,代表N局。
   每行有9张扑克牌数据,前3张代表“王要账(Wangyaozhang)”手中的3张牌,中间3张代表“于龙(Yulong)”手中的牌,后3张代表“赵松(Zhaosong)”同学手中的3张牌。
   例如某局前3张牌为:5S 6H 12C,其中数字表示点数(2-10代表点数为2-10的牌,11、12、13、14代表J、Q、K、A),字母表示花色的第一个字符,黑桃(Spade)、红桃(Heart)、梅花(Club)、方块(Diamond)。以上3张牌实际代表的是黑桃5、红桃6、方块Q。

花色从大到小按黑桃(Spade)、红桃(Heart)、梅花(Club)、方块(Diamond)排列。
   所有可能牌型从大到小排列如下:
  (1)豹子(Leopard):三张牌点数一样,如5S 5H 5C。
  (2)同花顺(Flush straight):三张牌同花色且点数恰好相邻,如5S 6S 7S。
  (3)顺子(Straight):三张牌点数恰好相邻,但不同花色,如10H 11D 12C。
  (4)同花(Same kind):三张牌花色相同,点数不全同,如8H 5H 11H。
  (5)对子(Pair):只两张牌点数相同,如11H 5C 11D。
  (6)花牌(General):花色不全相同,点数全不相同,如:5D 6C 8H。

请编程实现:

  1. 输出每位选手的牌型
  2. 输出每位选手牌型对应的最大点数及花色
  3. 输入与输出与所给示例保持相同

输入: 

8
8H 8D 8C 12C 12H 12S 14D 13D 12D
5S 7S 6S 14S 13D 12C 2S 3D 5H
11C 12D 10S 2H 3H 4H 14H 13D 14C
1C 5C 6C 5H 5D 6C 7D 9D 8D
10C 5D 10H 9D 8H 9C 13H 12D 10C
5D 6H 12C 14D 13C 10H 13H 12D 10C
5H 5D 6C 8D 9C 9H 14D 13S 2C
5H 5D 6C 5S 9C 5C 8D 9S 4C

输出

1:
Wangyaozhang:Leopard(Heart 8)
Yulong:Leopard(Spade Q)
Zhaosong:Flush straight(Diamond A)
2:
Wangyaozhang:Flush straight(Spade 7)
Yulong:Straight(Spade A)
Zhaosong:General(Heart 5)
3:
Wangyaozhang:Straight(Diamond Q)
Yulong:Flush straight(Heart 4)
Zhaosong:Pair(Heart A)
4:
Wangyaozhang:Same kind(Club 6)
Yulong:Pair(Heart 5)
Zhaosong:Flush straight(Diamond 9)
5:
Wangyaozhang:Pair(Heart 10)
Yulong:Pair(Club 9)
Zhaosong:General(Heart K)
6:
Wangyaozhang:General(Club Q)
Yulong:General(Diamond A)
Zhaosong:General(Heart K)
7:
Wangyaozhang:Pair(Heart 5)
Yulong:Pair(Heart 9)
Zhaosong:General(Diamond A)
8:
Wangyaozhang:Pair(Heart 5)
Yulong:Pair(Spade 5)
Zhaosong:General(Spade 9)

代码

#include<stdio.h>
int main()
{
    int N,i=0;
    scanf("%d",&N);
    while(N--)
    {
        int j;
        int dw1,dw2,dw3,mxdw;
        char cw1,cw2,cw3,mxcw;
        int tempd;
        char tempc;
        getchar();
        for(j=1; j<=3; j++)
        {

            scanf("%d%c %d%c %d%c",&dw1,&cw1,&dw2,&cw2,&dw3,&cw3);
//            printf("%d%c %d%c %d%c",dw1,cw1,dw2,cw2,dw3,cw3);
            if(i%3==0)
                printf("%d:\n",i/3+1);
            if(j==1)
                printf("Wangyaozhang:");
            else if(j==2)
                printf("Yulong:");
            else if(j==3)
                printf("Zhaosong:");
            if (dw1>dw2)
            {
                tempd=dw1;
                dw1=dw2;
                dw2=tempd;
                tempc=cw1;
                cw1=cw2;
                cw2=tempc;
            }
            if (dw1>dw3)
            {
                tempd=dw1;
                dw1=dw3;
                dw3=tempd;
                tempc=cw1;
                cw1=cw3;
                cw3=tempc;
            }
            if (dw2>dw3)
            {
                tempd=dw2;
                dw2=dw3;
                dw3=tempd;
                tempc=cw2;
                cw2=cw3;
                cw3=tempc;
            }
            mxdw=dw3;
            mxcw=cw3;
            if(dw1==dw3)
            {
                mxcw=(cw1>cw2)?cw1:cw2;
                mxcw=(mxcw>cw3)?mxcw:cw3;
                if(mxcw=='D'&&(cw1!='D'||cw3!='D'||cw3!='D'))
                    mxcw='C';
                printf("Leopard");
            }
            else if((cw1==cw2&&cw1==cw3&&cw2==cw3)&&(dw1+2==dw3))
                printf("Flush straight");
            else if((dw1+2==dw3)&&(cw1!=cw2&&cw1!=cw3&&cw2!=cw3))
                printf("Straight");
            else if((cw1==cw2&&cw1==cw3&&cw2==cw3)&&(dw1!=dw2||dw1!=dw3||dw2!=dw3))
                printf("Same kind");
            else if((dw1==dw2&&dw1!=dw3)||(dw1==dw3&&dw1!=dw2)||(dw2==dw3&&dw2!=dw1))
            {
                if(dw1==dw2&&dw1!=dw3)
                {
                    mxdw=dw1;
                    mxcw=cw1;
                    if(cw2>mxcw)
                        mxcw=cw2;
                    if((cw1=='C'&&cw2=='D')||(cw1=='D'&&cw2=='C'))
                        mxcw='C';
                }
                else if(dw1==dw3&&dw1!=dw2)
                {
                    mxdw=dw1;
                    mxcw=cw1;
                    if(cw3>mxcw)
                        mxcw=cw3;
                    if((cw1=='C'&&cw3=='D')||(cw1=='D'&&cw3=='C'))
                        mxcw='C';
                }
                else if(dw2==dw3&&dw2!=dw1)
                {
                    mxdw=dw2;
                    mxcw=cw2;
                    if(cw3>mxcw)
                        mxcw=cw3;
                    if((cw2=='C'&&cw3=='D')||(cw2=='D'&&cw3=='C'))
                        mxcw='C';
                }
                printf("Pair");
            }
            else if((cw1!=cw2||cw1!=cw3||cw2!=cw3)&&(dw1!=dw2&&dw1!=dw3&&dw2!=dw3))
                printf("General");
            if(mxcw=='S')
            {
                if(mxdw<=10)
                    printf("(Spade %d)\n",mxdw);
                else if(mxdw==11)
                    printf("(Spade J)\n");
                else if(mxdw==12)
                    printf("(Spade Q)\n");
                else if(mxdw==13)
                    printf("(Spade K)\n");
                else if(mxdw==14)
                    printf("(Spade A)\n");
            }
            if(mxcw=='H')
            {
                if(mxdw<=10)
                    printf("(Heart %d)\n",mxdw);
                else if(mxdw==11)
                    printf("(Heart J)\n");
                else if(mxdw==12)
                    printf("(Heart Q)\n");
                else if(mxdw==13)
                    printf("(Heart K)\n");
                else if(mxdw==14)
                    printf("(Heart A)\n");
            }
            if(mxcw=='C')
            {
                if(mxdw<=10)
                    printf("(Club %d)\n",mxdw);
                else if(mxdw==11)
                    printf("(Club J)\n");
                else if(mxdw==12)
                    printf("(Club Q)\n");
                else if(mxdw==13)
                    printf("(Club K)\n");
                else if(mxdw==14)
                    printf("(Club A)\n");
            }
            if(mxcw=='D')
            {
                if(mxdw<=10)
                    printf("(Diamond %d)\n",mxdw);
                else if(mxdw==11)
                    printf("(Diamond J)\n");
                else if(mxdw==12)
                    printf("(Diamond Q)\n");
                else if(mxdw==13)
                    printf("(Diamond K)\n");
                else if(mxdw==14)
                    printf("(Diamond A)\n");
            }
            i++;
        }
    }
    return 0;
}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值