python - 计算某些子集具有不同值的列表的最小总和
问题描述
我正在尝试在 python 中重新创建纸牌游戏“五冠”,我遇到了一个棘手的算法问题,我无法弄清楚试图计算手牌的分数。基本上,评分的工作原理是这样的:
与游戏三十三一样,玩家使用 Jokers 和当前回合的外卡作为百搭牌,创建 3 组或更多组。每一轮都有不同的外卡(3 手牌中的 3,4 手牌中的 4,5 手牌中的 5,依此类推,直到 13 手牌中的国王是百搭牌)。
更多信息 -> https://en.wikipedia.org/wiki/Five_Crowns_(game)
每组 3 张或以上为 0 分,每次 3 或以上为 0 分,您的分数是您手中牌值的总和。(王牌(1)到国王(13)和未使用的小丑(50))
e.g. with a hand of [1, 3, 4, 6, 7, 11]
- The wild card is 6
- Score would be 18
- Run of 1, 6, 3, 4 = 0
- 7
- 11
e.g. with a hand of [2, 2, 8, 11, 12, 13, 50, 50]
- The wild card is 8
- Score would be 0
- Run of 8, 11, 12, 13 = 0
- Set of 2, 2, 50, 50 = 0
我不知道如何解决这个问题。有没有类似的算法?
所有建议表示赞赏!
解决方案
推荐阅读
- javascript - Electron:app.on 'open-file' 的 Windows 替代方案
- java - 如何在多个活动之间共享公共代码?拜托,这不是一个重复的问题
- python - 定义一个函数,该函数使用 Python 中其他两个文本文件中的字符串创建文本文件
- php - 基于相同键但不同键值的数组合并应添加为单独的数组
- php - 将文件从 php 发送到另一个 api wordpress
- vespa - 如何在 vespa.ai 中合并(联合)多个搜索文档?
- swift - Xcode tintedImageProvider 用于 Apple Watch 复杂功能 rectangleTemplate.imageProvider
- javascript - Wiredjs Web 组件不发送表单
- reactjs - 赛普拉斯没有检测来自 cy.route() 的路由
- javascript - 在 plotly 模板中添加多个 csv 文件