H12【选做▪游戏】拱猪计分【北理工乐学C语言作业】

本文介绍了大学时期流行的扑克牌游戏‘拱猪’的计分规则,并提供了C语言代码实现,包括普通模式和特殊模式下玩家得分的计算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景:
    
拱猪是我在大学期间经常玩的一种扑克牌游戏。即使现在的你不知道它的玩法,你也可以由它的计分方式来了解它的趣味性。 假设在此我们仅考虑四个人的拱猪牌局,本题要求你根据下面的计分规则,在牌局结束时计算四位玩家所得分数。

  1. 我们分别以S、H、D及C来代表黑桃,红心,方块及梅花,并以数字1至 13来代表A、2、…、Q、K等牌点,例如:H1为红心A,S13为黑桃K。
  2. 牌局结束时,由各玩家持有的有关计分的牌(计分牌)仅有S12(猪),所有红心牌,D11(羊)及C10(加倍)等16张牌。其它牌均弃置不计。若未持有这16张牌之任一张则以得零分计算。
  3. 若持有C10的玩家只有该张牌而没有任何其它牌则得+50分,若除了C10 还有其它计分牌,则将其它计分牌所得分数加倍计算。
  4. 若红心牌不在同一家,则H1至H13等13张牌均以负分计,其数值为-50, -2,-3,-4,-5,-6,-7,-8,-9,-10,-20,-30,-40。而且S12与D11分别以-100及+100分计算。
  5. 若红心牌H1至H13均在同一家,有下列情形:
    • 所有红心牌以+200分计算。
    • 若S12、D11皆在吃下所有红心牌之一家,则此玩家得+500分。
    • 而C10还是以前面所述原则计算之。

例一:若各玩家持有计分牌如下: ( 每列代表一玩家所持有之牌 )

S12 H3 H5 H13
D11 H8 H9
C10 H1 H2 H4 H6 H7
H10 H11 H12

则各家之得分依序为: -148 、 +83 、 -138 及 -60 。

例二:若各玩家持有计分牌如下:(第四家未持有任何计分牌)

H1 H2 H3 H4 H5 H6 H7 H8 H9 H10 H11 H12 H13
S12 C10
D11

则各家之得分依序为: +200 、 -200 、 +100 及 0 。

例三:若有一玩家持有所有 16 张计分牌,则得 +1000 分。其余三家均得零分。

输入:
    
每个输入文件由多组测试数据构成,每组测试数据有四行,每一行第一个数为该玩家所持有计分牌总数,而后列出其所持有之所有计分牌,牌数与各计分牌均以一个以上的空格分开。相邻两组测试数据之间不会有空白行,读到四家持牌数都为 0 表示文件结束。

输出:
    每一行输出一组测试数据对应的结果,依次输出各家所得分数,共四个整数 ( 含正负号,0 除外),相邻两个整数之间以一个空格分开,符号和数字间不可以有空格。每组输出间不需要有空白行。

#include<stdio.h>  
#include<string.h>  
int input(char *in){  
    int i,n,j;  
    char temp[5];  
    for(j=0;j<5;j++){  
        temp[j]='\0';  
    }  
    scanf("%d",&n);  
    for(i=0;i<n;i++){  
        scanf("%s",&temp);  
        strcat(in,temp);  
        in[strlen(in)]=' ';  
    }  
    return n;     
}  
  
//判断是否进入特殊模式   
int mod(char *a,char *b,char *c,char *d){  
    int sign=0;  
    if(decide_mod(a)==13) sign=1;  
    else
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值