我喜欢纸牌游戏的挑战,所以我是为意大利纸牌游戏Scopa制作的。自古以来,我的家人就一直在玩这种游戏。它有一个非常有趣的计分系统,对高尔夫来说应该很有趣。我将在R中发布答案以开始乐趣,我相信人们会有所改善。
挑战:鉴于玩家在这一轮中捕获的卡牌作为输入,计算出Scopa回合中得分的数量。
Scopa牌组中有40张卡片。如果您使用的是国际牌,则删除8、9和10,在每套西装中保留A,2、3、4、5、6、7,Q,J,K。1有两个玩家或合伙企业,每轮比赛结束后,所有纸牌最终被两个玩家中的一个抓获。得分计算如下(此处有更多信息):
- 卡数最多的玩家得分1分。
- 拥有最多钻石(如果使用意大利套牌,则为硬币)的玩家获得1分。
- 拥有7颗钻石(或硬币)的玩家,称为sette bello或漂亮的7颗,得分为1分。
- 拥有最高级初阶球员的球员得到1分。玩家的原始分数是该玩家在每套西装中捕获的最高价值卡的分数总和(请参见下表)。如果每套西装中至少没有一张牌,即使您的得分超过对手的得分,您也会默认丢失。在极少见的情况下,每位球员都没有至少一张牌的情况下,具有较高初等总得分的球员得分。2
原始评分表
| Rank | Value |
| ----- | ----- |
| 7 | 21 |
| 6 | 18 |
| A | 16 |
| 5 | 15 |
| 4 | 14 |
| 3 | 13 |
| 2 | 12 |
| Q,J,K | 10 |
因此,一个玩家最多可以在一个回合中得分4分。3如果出现平局,这对于卡,钻石或初等都可能,则没有人得分。
重要的是要意识到,由于每张纸牌必须由两名玩家之一抓取,因此即使您只知道一位玩家拿了哪些卡,也可以推断另一位玩家必须拿过哪些卡。您需要执行此操作才能正确对primiera评分。
挑战规则
输入值
您的代码应将一轮Scopa期间单个玩家捕获的卡作为输入。
输入必须采用字符串格式,其中一个字符代表每张卡的等级,一个字符代表其卡号。这消除了将原始分数直接作为输入传递的潜在漏洞。卡等级到原始分数的转换必须在程序中完成。但是,您可以选择使用由空格或逗号分隔的单个字符串,字符串数组或任何其他格式。例如,如果您选择将等级编码为76A5432QJK
和适合,则DCHS
可以使用诸如['7D', '6H', 'QD', 'JS']
或的输入'7D,6H,QD,JS'
。
输出量
从0到4的整数,表示玩家的分数。
获奖
以字节为单位的最短答案胜出!
测试用例
["7D", "6D", "AD", "5D", "4D", "3D", "2D", "QD", "7C", "6C", "4C", "3C", "2C", "7H", "4H", "2H", "5S", "3S", "QS", "JS", "KS"]
得分4:> 20张卡片可得1分,> 5钻石可得1分,钻石7得1分,普里米耶拉(78,7,7,5,其中对手有7,6,5, K为64)
["3D", "7C", "6C", "AC", "5C", "4C", "3C", "2C", "QC", "4H", "7S"]
得分0:<= 20张牌,<= 5颗钻石,没有7颗钻石,并且在原始等级中仅得分69 (7,7,4,3,其中对手有7,7,6,K代表70)
[7D", "6D", "AD", "5D", "4D", "3D", "2D", "7C", "6C", "AC", "5C", "4C", "3C", "2C", "7H", "6H", "AH", "5H", "4H", "3H", "2H"]
得分3:> 20张卡片1分,> 5钻石1分,7钻石1分。该primiera将是63(7,7,7),而对手只能得分51(7,Q,Q,Q),但由于这手有没有黑桃失去默认点。
["7D", "6D", "AD", "5D", "4D", "3D", "2D", "QD", "JD", "KD", "QC", "QH", "QS"]
分数3:<= 20张卡片,> 5颗钻石1分,7颗钻石1分。该primiera唯一得分51(7,Q,Q,Q)和对手能得分63(7,7,7),但由于对手的手有没有钻石这一手赢得primiera默认点。
["7D", "6D", "AD", "5D", "4D", "3D", "2D", "QD", "JD", "KD", "7C", "7H"]
分数3:<= 20张卡片,> 5颗钻石1分,7颗钻石1分。即使这只手没有黑桃,但由于对手的手没有钻石,因此它仍然以63:57(7,7,7对7,6,6)的优势赢得初选。
["7D", "6D", "AD", "5D", "4D", "3D", "2D", "QD", "JD", "KD", "QC", "QH"]
得分2:<= 20张卡片,> 5颗钻石1分,7颗钻石1分。这只手没有黑桃,对手的手没有钻石。对手以63:41的比分赢得初选(7,7,7对7,7,Q,Q)。
[]
(空数组)
分数0
1:至少在我们的家庭中,杰克在斯科帕区的排名超过皇后区,但这与计分目的无关。
2:我从小就开始玩这个游戏,但从未见过这种情况,但是您的代码最好能够处理这种情况!
3:在本轮比赛中,“扫奖”获得了一些加分,而我为此挑战而忽略了这一点。