中国红心,也被称为宫朱(拱猪,追逐猪),是一个变化的心游戏。这是一个4人纸牌游戏,目的是获得最高的分数。你可以在维基百科上读到更多关于它的内容。这一次,我们要实现一个程序(满或函数)来计算得分。
在这一轮比赛中,发挥最高价值牌的球员赢得了这轮比赛中的所有牌。比赛结束后,分数由这些卡片计算出来:
特别规则:
评分规则可能因地而异。请注意,此挑战不包括"sell“(卖/明牌),这将使其更加复杂。
输入将是一个字符串(或一个字符列表)。
23456789TJQKA for ♥2 ~ ♥AP for ♠QG for ♦JD for ♣10从输入中忽略所有其他卡片。你不会把角色从这个名单上拿出来的。在这个挑战中,我们使用了一副牌(52张)。所以,输入中不会有重复的卡片。
输出为整数,这些卡片的得分。
Input Output
234 0
56789T -60
T -10
J -20
Q -30
K -40
A -50
TJQK -100
P -100
G 100
TJQKP -200
PG 0
2468TQKG 0
D 50
234D 50
GD 200
PGD 0
TJQKGD 0
23456789TJQK -150
3456789TJQKA -200
23456789TJQKA 200
23456789TJQKAP 100
23456789TJQKAG 300
23456789TJQKAPG 400
2356789TJQKAPD -600
23456789TJQKAPGD 800
DP2A45968TJK7QG3 800
DP24 -200
G2P6D4 -20注:得分规则的一些细节可能因比赛而异。有些规则允许所有的心加♠Q计数为+300分,无论♦J是否被收集。有些规则将♥2、♥3、♥4应用于♣10,而收集♥2、♥3、♥4和♣10则为0而不是+50分。然而,你的答案必须遵循这篇文章中描述的规则。
发布于 2018-10-07 15:22:54
≔”A↘⊟T“{»aS¡I⁷”ζ≔×χΣΦ”)⊟≡GO∧”№θ§ζκηF¬⌊E…⮌ζ¹³№θι≦±ηF№θG≧⁺¹⁰⁰η¿⌊Eζ№θι≧⁺¹⁰⁰ηF№θP≧⁻¹⁰⁰ηF№θD¿Φ…ζ¹²№θκ≧ײη≧⁺⁵⁰ηIη在网上试试!链接是详细的代码版本。解释:
≔”A↘⊟T“{»aS¡I⁷”ζ保存字符串PGAKQJT98765432以供以后使用。特别是,这条线以13颗心结束,以12张得分卡开始。
≔×χΣΦ”)⊟≡GO∧”№θ§ζκη在字符串005432111111上循环。将与卡对应的数字从显示在输入中的保存字符串中保存下来,然后取和并乘以10。
F¬⌊E…⮌ζ¹³№θι≦±η如果至少有一颗心没有出现在输入中,那么否定总数。
F№θG≧⁺¹⁰⁰η每只山羊加100只羊。
¿⌊Eζ№θι≧⁺¹⁰⁰η如果山羊和所有的心都在,那就加100给猪,
F№θP≧⁻¹⁰⁰η否则,每只猪减去100。
F№θD¿Φ…ζ¹²№θκ≧ײη≧⁺⁵⁰η对于每个变压器,如果任何得分卡的礼物,然后加倍的总数,否则加50。
Iη输出总数。
https://codegolf.stackexchange.com/questions/173570
复制相似问题