题目:拱猪积分

描述:

【问题描述】

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

我们分别以 S 、 H 、 D 及 C 来代表黑桃,红心,方块及梅花,并以数字 1 至 13 来代表 A 、 2 、 … 、 Q 、 K 等牌点,例如︰ H1 为红心 A , S13 为黑桃 K 。

牌局结束时,由各玩家持有的有关计分的牌 ( 计分牌 ) 仅有 S12 ( 猪 ) ,所有红心牌, D11 ( 羊 ) 及 C10 ( 加倍 ) 等 16 张牌。其它牌均弃置不计。若未持有这 16 张牌之任一张则以得零分计算。

若持有 C10 的玩家只有该张牌而没有任何其它牌则得 +50 分,若除了 C10 还有其它计分牌,则将其它计分牌所得分数加倍计算。

若红心牌不在同一家,则 H1 至 H13 等 13 张牌均以负分计,其数值为 -50 , -2 , -3 , -4 , -5 , -6 , -7

, -8 , -9 , -10 , -20 , -30 , -40 。而且 S12 与 D11 分别以 -100 及 +100 分计算。

若红心牌 H1 至 H13 均在同一家,有下列情形︰

所有红心牌以 +200 分计算(13张总共+200分)。

若 S12 、 D11 皆在吃下所有红心牌之一家,则此玩家得 +500 分(这15张总共+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 除外 ) ,相邻两个整数之间以一个空格分开,符号和数字间不可以有空格。每组输出间不需要有空白行。

【输入输出样例】

输入:

heart.in

4 S12 H3 H5 H13

3 D11 H8 H9

6 C10 H1 H2 H4 H6 H7

3 H10 H11 H12

13 H1 H2 H3 H4 H5 H6 H7 H8 H9 H10 H11 H12 H13

2 S12 C10

1 D11

0

0

0

0

0

输出:

heart.out

-148 +83 -138 -60

+200 -200 +100 0

解析:很大很大很大的一个模拟……调试起来真方(e)便(xin)……

AC代码:

programzht;varpai,a,b,c,d:ansistring;

sp:array[0..4,0..20] oflongint;

s,f:array[0..10] oflongint;

i,bh,j:longint;

z:array[0..13] oflongint;procedurepanduan;begin

if length(pai)=2 then pai:=pai[1]+'0'+pai[2];if (pai[1]<>'H') and (pai<>'S12') and (pai<>'D11') and (pai<>'C10') thenexit;if pai[1]='H' then sp[bh,(ord(pai[2])-48)*10+ord(pai[3])-48]:=1;if pai='S12' then sp[bh,14]:=1;if pai='D11' then sp[bh,15]:=1;if pai='C10' then sp[bh,16]:=1;

pai:='';end;procedurechuli;vark,w,g:longint;beginpai:='';

bh:=1;

w:=0;

k:=0;

g:=0;

w:=pos(' ',a);for k:=1 to w-1 dos[1]:=s[1]*10+ord(a[k])-48;while 1<2 do

begin

if a='0' thenbreak;//shou pai shufor k:=w+1 to length(a) do

begin

if a[k]=' ' then begin panduan; pai:=''; continue; end;

pai:=pai+a[k];end; //shou pai

panduan; pai:='';

break;end;

pai:='';

bh:=2;

w:=pos(' ',b);for k:=1 to w-1 dos[2]:=s[2]*10+ord(b[k])-48;while 1<2 do

begin

if b='0' then begin break; end;for k:=w+1 to length(b) do

begin

if b[k]=' ' then begin panduan; pai:=''; continue; end;

pai:=pai+b[k];end;

panduan; pai:='';

break;end;

pai:='';

bh:=3;

w:=pos(' ',c);for k:=1 to w-1 dos[3]:=s[3]*10+ord(c[k])-48;while 1<2 do

begin

if c='0' thenbreak;for k:=w+1 to length(c) do

begin

if c[k]=' ' then begin panduan; pai:=''; continue; end;

pai:=pai+c[k];end;

panduan; pai:='';

break;end;

pai:='';

bh:=4;

w:=pos(' ',d);for k:=1 to w-1 dos[4]:=s[4]*10+ord(d[k])-48;//shou pai shuwhile 1<2 do

begin

if d='0' thenbreak;for k:=w+1 to length(d) do

begin

if d[k]=' ' then begin panduan; pai:=''; continue; end;

pai:=pai+d[k];end;

panduan; pai:='';

break;end;

k:=0;end;proceduretepan1(k:longint);varg:longint;beging:=0;for g:=1 to 4 do

if s[g]=16 then begin f[g]:=1000;bh:=1; exit; end;end;proceduretepan2(k:longint);varg,zs:longint;beginzs:=0;for g:=1 to 13 do

if sp[k,g]=1 theninc(zs);if zs=13 then begin

if (s[k]=15) and (sp[k,16]=0) then begin f[k]:=500; exit; end;if (s[k]=15) and (sp[k,16]=1) then begin f[k]:=400; exit; end;

f[k]:=200; if sp[k,14]=1 then f[k]:=f[k]-100;end;end;procedureqiu(k:longint);varg:longint;begin

if f[k]<>0 thenexit;for g:=1 to 13 do

if sp[k,g]=1 then f[k]:=f[k]+z[g];if sp[k,14]=1 then f[k]:=f[k]-100;if sp[k,15]=1 then f[k]:=f[k]+100;if sp[k,16]=1 then if s[k]>1 then f[k]:=f[k]*2 else f[k]:=50;end;procedurejisuan;vark:longint;beginbh:=0;

tepan1(k);if bh=1 thenexit;for k:=1 to 4 do

begintepan2(k);

qiu(k);end;end;procedureprint;vark,g:longint;begin

if f[1]>0 then write('+',f[1],' ') else write(f[1],' ');if f[2]>0 then write('+',f[2],' ') else write(f[2],' ');if f[3]>0 then write('+',f[3],' ') else write(f[3],' ');if f[4]>0 then write('+',f[4],' ') else write(f[4],' ');

writeln;{for k:=1 to 4 do

begin

for g:=1 to 16 do

write(sp[k,g],' ');

writeln;

end;}fillchar(f,sizeof(f),0);

fillchar(s,sizeof(s),0);

fillchar(sp,sizeof(sp),0);

pai:='';end;beginassign(input,'heart.in');

assign(output,'heart.out');

reset(input);

rewrite(output);

z[1]:=-50; z[2]:=-2; z[3]:=-3; z[4]:=-4; z[5]:=-5; z[6]:=-6; z[7]:=-7; z[8]:=-8;

z[9]:=-9; z[10]:=-10; z[11]:=-20; z[12]:=-30; z[13]:=-40;

readln(a);

readln(b);

readln(c);

readln(d);while a+b+c+d<>'0000' do

beginbh:=0;

chuli;{for i:=1 to 4 do

begin

for j:=1 to 16 do

write(sp[i,j],' ');

writeln;

end;}jisuan;

print;

readln(a);

readln(b);

readln(c);

readln(d);end;

close(input);

close(output);end.

AC代码

拱猪java_模拟——拱猪积分题解相关推荐

  1. 山大程序设计思维与实践 六月模拟:猪国杀

    六月模拟:猪国杀 山东大学计算机科学与技术学院程序设计思维与实践作业 山大程序设计思维与实践 sdu程序设计思维与实践 山东大学程序设计思维实践作业H 山大程序设计思维实践作业H 山东大学程序设计思维 ...

  2. 第十四届蓝桥杯第一期模拟赛试题与题解 C++

    第十四届蓝桥杯第一期模拟赛试题与题解 C++ 试题 A 题解:位运算 试题 B 题解:日历模拟 试题 C 题解:double 求和 试题 D 题解:枚举 试题 E 题解:二维前缀和 试题 F 题解:两 ...

  3. 猪年说猪:那些叫“猪”但不是猪的动物有哪些?

    中新网北京1月30日电(记者 宋宇晟)春节的特色活动--"猪"事如意生肖文化活动于30日亮相北京动物园. 北京动物园内挂起大红灯笼.中新网记者 宋宇晟 摄 记者注意到,展览介绍了猪 ...

  4. NOIP 模拟赛 长寿花 题解

    NOIP 模拟赛 长寿花 题解 要放 \(n\) 层物品,第 \(i\) 层有 \(a_i\) 个位置放物品,物品有 \(m\) 中颜色,有约束条件: 同一层两个相邻物品颜色不能相同. 相邻两层颜色集 ...

  5. 拱猪java_有没有大神帮忙解决一下这个项目启动报错的问题

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 2018-07-10 15:36:34 [localhost-startStop-1] - [ERROR] Context initialization ...

  6. 模拟 [Sdoi2010]猪国杀

    题目的可读版本 有那么几个地方需要注意: 1.使用一个锦囊后,先判无懈可击. 2.如果一个猪出完一个牌后,要从头开始看哪个能出(有可能一次出牌后某只猪跳忠或者跳反了,F,K什么的就可以用了.) 3.游 ...

  7. “猪”事大吉 | 为什么猪是最后一个生肖?

    终于盼到猪年,大年初一头一天呐~ 小猪猪给您拜年啦! 说到猪,你会想到什么?是前段时间火爆网络的小猪佩奇?还是西游记里总是娶不到媳妇儿的八戒?其实,生肖猪意义非凡,可爱的小猪猪从古至今都颇受人们喜爱. ...

  8. [NOIP10.6模拟赛]2.equation题解--DFS序+线段树

    题目链接: 咕 闲扯: 终于在集训中敲出正解(虽然与正解不完全相同),开心QAQ 首先比较巧,这题是\(Ebola\)出的一场模拟赛的一道题的树上强化版,当时还口胡出了那题的题解 然而考场上只得了86 ...

  9. 猪队友!猪队友!!猪队友!!!

    据小编多年仔细观察,猪队友大体可分为两种: 第一种是新人,完全没经验,这种情况只要他工作态度积极,其实是完全可以接受的,毕竟每个人都做过新人,时间会让其成长起来! 第二种那就是"真猪&quo ...

最新文章

  1. R语言vtreat包的mkCrossFrameCExperiment函数交叉验证构建数据处理计划并进行模型训练、通过显著性进行变量筛选(删除相关性较强的变量)、构建多变量模型、转化为分类模型、模型评估
  2. 重记解决kube-dns故障一则---ceph惹的祸
  3. linux主机电影源码,求::totem电影播放机源代码!!!!
  4. 什么是DQL、DML、DDL、DCL
  5. 未能初始化appscan应用程序现在将关闭_企业区块链应用程序的两个关键问题
  6. 应用程序如何链接静态QT Plugin库
  7. 十六进制转换html,如何使用JavaScript将十进制转换为十六进制?
  8. python获取微信用户基本信息_微信开放平台扫码登录获取用户基本信息!附可用demo...
  9. Java SQL 注入学习笔记
  10. JavaSE 学习笔记之正则表达式(二十五)
  11. storm 可靠性和非可靠性
  12. 医疗服务系统设计说明书
  13. 【量化课堂】风险模型
  14. 拨号服务器可以端口映射吗,常见的几种ADSL 路由器端口映射设置方法
  15. Mstar的Monitor方案笔记(七)——EDID基本数据结构
  16. java项目笔记 - 第18章:坦克大战2.1
  17. PAT 1058 选择题 python
  18. 如何写好技术部门的年度 OKR
  19. Android 应用清单简介1
  20. ecg信号越界_ECG信号处理

热门文章

  1. 本笔记为阿里云天池龙珠计划SQL训练营的学习内容 task 2
  2. 有关windows黑屏的解决办法
  3. Docker学习-狂神版
  4. 详解磁盘IO、网络IO、零拷贝IO、BIO、NIO、AIO、IO多路复用(select、poll、epoll)
  5. Ajax简介,ajax是什么?
  6. python画板颜色_Python数据可视化:Seaborn(二):色板
  7. “自由职业者数据挖掘“如何指导振兴零工经济,自由职业者要求零工平台算法透明化。他们的斗争为所有人创造公平的工作场所提供了重要的经验教训。
  8. 游戏建模|坚持下来的人都是非常优秀的?因为他离不开以下几点
  9. 徐州神舟计算机学校是大专还是中专,徐州中专学校是大专吗
  10. VS Code搭建Ts环境