拱猪计分(normal)
【模拟试题】:拱猪计分(normal)
Time Limit:1000MS Memory Limit:65536K
Total Submit:39 Accepted:13
Description
拱猪是一种很有趣的扑克牌游戏。 即使你不知道它的玩法,你也可以由它的计分方式来了解它的趣味性。 假设在此我们仅考虑四个人的拱猪牌局,本题要求你根据下面的计分规则,在牌局结束时计算四位玩家所得分数。
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 均在同一家,有下列情形︰
o所有红心牌以+200分计算。
o若 S12、D11 皆在吃下所有红心牌之一家,则此玩家得 +500 分。
o而 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 分。其余三家均得零分。
Input
每个输入文件由多组测试数据构成,每组测试数据有四行,每一行第一个数为该玩家所持有计分牌总数,而后列出其所持有之所有计分牌,牌数与各计分牌均以一个以上的空格分开。相邻两组测试数据之间不会有空白行,读到四家持牌数都为 0 表示文件结束。
Output
每一行输出一组测试数据对应的结果,依次输出各家所得分数,共四个整数(含正负号,0 除外),相邻两个整数之间以一个空格分开,符号和数字间不可以有空格。每组输出间不需要有空白行。
Sample Input
Sample Output
#include <stdio.h>
#include <string.h>
#include <memory.h>
int main(void)
{
int flag=0,h;
int nn[5]={0},tt[5]={0},hc[]={0,-50,-2,-3,-4,-5,-6,-7,-8,-9,-10,-20,-30,-40};
int i,j,k,d11,s12,temp,c10;
char ss[20][6],hh[20][6]={"0","H1","H2","H3","H4","H5","H6","H7","H8","H9","H10","H11","H12","H13"};
while (1)
{
memset(nn,0,sizeof(nn));
memset(tt,0,sizeof(tt));
for(i=1 ; i<= 4 ; i++)
{
memset(ss,'/0',sizeof(ss));
scanf("%d",&nn[i]);
for(j=1 ; j<nn[i] ; j++)
scanf(" %s",ss[j]);
if(j <= nn[i])
scanf(" %s",ss[j]);
if(nn[i] == 0)
tt[i] = 0 ;
else if ( nn[i] == 1 && strcmp(ss[1],"C10") == 0)
tt[i] = 50 ;
else
{
if ( nn[i] == 16)
tt[i] = 1000 ;
else
{
s12 = 0 ;
d11 = 0 ;
c10 = 0 ;
for(h=1 ; h<= nn[i] ; h++)
{
if(strcmp(ss[h],"S12")== 0)
s12 = 1 ;
else if(strcmp(ss[h],"D11")==0)
d11 = 1 ;
else if(strcmp(ss[h],"C10")== 0)
c10 = 1 ;
}
if ( nn[i] >= 13)
{
temp = 0 ;
for(k=1 ; k<= nn[i] ; k++)
for(h=1 ; h<= 13 ; h++)
if(strcmp(ss[k],hh[h]) == 0)
{
temp ++ ;
break ;
}
if(temp == 13)
{
tt[i] = 200 ;
if( s12 && d11)
tt[i] += 300 ;
else if(s12)
tt[i] -= 100 ;
else if(d11)
tt[i] += 100 ;
if(c10)
tt[i] *= 2 ;
}
else
{
for(k=1 ; k<= nn[i] ; k++)
for(h=1 ; h<= 13 ; h++)
if( strcmp(ss[k],hh[h]) == 0)
{
tt[i] += hc[h] ;
break ;
}
if( s12 )
tt[i] -= 100 ;
if( d11 )
tt[i] += 100 ;
if( c10 )
tt[i] *= 2 ;
}
}
else
{
for(k=1 ; k<= nn[i] ; k++)
for(h=1 ; h<= 13 ; h++)
if( strcmp(ss[k],hh[h]) == 0)
{
tt[i] += hc[h] ;
break ;
}
if( s12 )
tt[i] -= 100 ;
if( d11 )
tt[i] += 100 ;
if( c10 )
tt[i] *= 2 ;
}
}
}
}
if( nn[1]== 0 && nn[2] == 0 && nn[3] == 0 && nn[4] == 0)
break ;
for(k=1 ; k<= 4 ; k++)
{
if(tt[k] > 0)
printf("+%d ",tt[k]);
else
printf("%d ",tt[k]);
}
}
system("pause");
return 0 ;
}
-148 +83 -138 -60+200 -200 +100 0
4 S12 H3 H5 H133 D11 H8 H96 C10 H1 H2 H4 H6 H73 H10 H11 H1213 H1 H2 H3 H4 H5 H6 H7 H8 H9 H10 H11 H12 H13 2 S12 C101 D1100000
拱猪计分(normal)相关推荐
- 拱猪计分问题(细心题)
[模拟试题]:拱猪计分(normal) Time Limit:1000MS Memory Limit:65536K Total Submit:39 Accepted:13 Description 拱 ...
- c语言编程拱猪计分,拱猪计分
拱猪计分 Time Limit:1000MS Memory Limit:65536K Total Submit:62 Accepted:21 Description 拱猪是一种很有趣的扑克牌游戏. 即 ...
- 洛谷P1148 拱猪计分
洛谷P1148 拱猪计分 题意: 拱猪是一种很有趣的扑克牌游戏. 即使你不知道它的玩法,你也可以由它的计分方式来了解它的趣味性. 假设在此我们仅考虑四个人的拱猪牌局,本题要求你根据下面的计分规则,在牌 ...
- C#试玩程序设计试题——拱猪计分
题目链接: https://wenku.baidu.com/view/d8253e24f90f76c660371ac2.html?from=search 问题描述: 拱猪是一种有趣的扑克牌游戏.即使你 ...
- c语言拱猪计分测试例,北理C语言作业及答案3.doc
北理C语言作业及答案3北理C语言作业及答案3 C语言作业3 43. 缩写展开 成绩: 10 / 折扣: 0.8 在保存字符串时,对出现在连续位置的若干个字符,如这些字符在ASCII表中也是连续出现,则 ...
- 纸牌游戏红心大战拱猪设计(C语言)
纸牌游戏红心大战设计 ( C语言 ) 红心大战是Windows的经典游戏,中国式的红心是拱猪游戏,加入了方块J羊和梅花10 变压器(即俗称加倍).加大了游戏难度和趣味性. 试制此游戏是准备编制网络版 ...
- 拱猪java_模拟——拱猪积分题解
题目:拱猪积分 描述: [问题描述] 拱猪是一种很有趣的扑克牌游戏. 即使你不知道它的玩法,你也可以由它的计分方式来了解它的趣味性. 假设在此我们仅考虑四个人的拱猪牌局,本题要求你根据下面的计分规则, ...
- 【mud】mud游戏的魅力(拱猪)
修改后下载https://download.csdn.net/download/viviliving/11632536 拱猪规则⒈请用 sit <direction> 入座.凑齐四个人就可 ...
- 拱猪java,有没有大神帮忙解决一下这个项目启动报错的问题
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 2018-07-10 15:36:34 [localhost-startStop-1] - [ERROR] Context initialization ...
最新文章
- cent0S7根分区扩容以及问题解决
- 软件工程之快速原型模型
- swift5的SnipKit框架使用
- 周至四中计算机老师,周至县第四中学顺利承办周至县 “教育信息化技术与教学课堂深度融合交流研讨会”...
- 用随机梯度下降来优化人生
- aix Mysql-Rpm puppet puppetAgent
- 信安教程第二版-第6章认证技术原理与应用
- java switch程序_Java 基础分支语句之程序流程控制switch-case
- STC学习:霍尔开关器件
- 发动机噪音测试软件,噪音测试
- 刚从阿里、头条面试回来,java程序员社招自我介绍
- 电子计算机eniac的储存能力有限 只能,电子计算机ENIAC的存储能力有限,只能存储简单的控制程序代码。...
- 等保2.0落地解读与实践分析
- 2021衡阳田家炳高考成绩查询,衡阳2021高考最高分多少分,衡阳历年高考状元资料...
- IDEA Windows + Mac 快捷键(全)
- 5月刚刚阿里面软件测试岗回来,3+1面任职阿里P7,年薪28*15薪
- CentOS7 安装 Oracle
- 你到底要一台什么样的笔记本
- RS-485、以太网和CAN三种组网方式的比较
- jee Java什么意思_JEE、J2EE与Jakarta等概念解释
热门文章
- 江苏师范大学计算机学硕调剂,考研最容易调剂的大学_2016江苏师范大学考研调剂信息已公布...
- uniapp(vue):js实现双色球开奖走势图带连线
- 【idea】推荐一个idea翻译插件:Translation
- cta策略 有哪些_简单介绍什么是CTA交易策略
- 江建教育:监理工程师应该选择哪个专业报考?
- 解决动态加载java.lang.UnsatisfiedLinkError: dlopen failed * is 32-bit instead of 64-bit 报错
- 分类、推荐系统评测指标—准确率(Precision)、召回率(Recall)、F值(F-Measure) /(F-score)
- Win10+python+open pose骨骼关键点检测编译和使用(挥手检测案例)
- 在一定范围内生成随机数
- Python数据分析补充:数据的分组与汇总(数据透视)