我当时正在观看世界斯诺克锦标赛,这让我感到奇怪。
斯诺克计分
在斯诺克游戏中,您也必须遵守某些规则:
- 桌子上有红球时,在回合时必须先倒一个红球
- 装好每个红色的球之后,您必须装一个有色(不是红色)的球(然后将有色的球替换到桌子上)
- 在所有红色球都起来(有15个)之后,您可以先选择一个彩色球,然后从得分最低的球开始,然后逐步上升到得分最高的球(不替换这些球)
- 任何时候不灌封都可以结束您的回合。
- 每球积分
- 红球:1分
- 黄球:2分
- 绿球:3分
- 棕球:4分
- 蓝球:5分
- 粉红球:6分
- 黑球:7分
问题
你开始用所有的球表仍然在它- 15红和一个其他每个彩球的-之后他们的第一个转弯都给予了玩家的斯诺克比分,是什么,他们可以实现这一点的办法得分了?
输入的分数将是1到147。您可以选择是整数还是字符串。输出应该是您对每个球进行盆栽的次数的不同组合。
测试用例:
Input: 4
Output:
1r 1g
2r 1y
Input: 25
Output:
4r 3b
5r 2b 1br 1y
5r 2b 2g
...
9r 8y
规则:
- 您可以选择是否输出用新行或某种分隔符(/ 、; | \甚至我所缺少的其他分隔符)分隔的可能性
这是codegolf,所以最短的代码获胜。
我可以输出为数组列表吗?
—
Leaky Nun
关于数组输出:按分数排序的球数是明确的,因此也许
—
乔纳森·艾伦
"5r 3b 2g"可以输出为[5,0,2,0,3,0,0](只要这是一致的)?
您使用
—
乔纳森·艾伦
b棕色和bl蓝色;所以bk黑?我们可以为这三个使用n,e和k(最后一个字母)吗?如何dleruna识别所有八种颜色(每种颜色的第三个字母)?
@Shaggy,如果您使用诸如dereruna或其他颜色的指示,则不会。如果仅使用[5 0 0 4 1 0 0]这样的数组,则应将它们从低到高排序。
—
密森
仅出于说明目的,这是 Ronnie“ The Rocket” O'Sullivan突破147的一个令人惊讶的例子。
—
Arnauld