世界スヌーカー選手権を見ていましたが、不思議に思いました。
スヌーカーの得点
スヌーカーのゲームには、守らなければならない特定のルールがあります:
- テーブルに赤いボールがある場合、あなたのターン中に最初に赤いボールをポットしなければなりません
- それぞれの赤いボールをポッティングした後、色付きの(赤ではない)ボールをポッティングする必要があります(ポッティングされた色付きのボールはテーブルに置き換わります)
- すべての赤いボールが上がった後(15個あります)、最初に色の付いたボールを選択してから、最も低いスコアのボールから始めて、最も高いスコアのボールまで進めます(これらは交換されません)。
- ポッティングをしないと、ターンが終了します。
- ボールあたりのポイント
- 赤いボール:1ポイント
- 黄色のボール:2ポイント
- 緑色のボール:3ポイント
- 茶色のボール:4ポイント
- 青いボール:5ポイント
- ピンクボール:6ポイント
- ブラックボール:7ポイント
質問
すべてのボールがまだ残っているテーブル(15個の赤と他の各色のボールの1つ)から開始し、最初のターン後にスヌーカーのプレーヤーのスコアが与えられます。スコア?
入力は1〜147のスコアです。整数か文字列かを選択できます。出力は、各ボールをポットした回数の異なる組み合わせである必要があります。
テストケース:
Input: 4
Output:
1r 1g
2r 1y
Input: 25
Output:
4r 3b
5r 2b 1br 1y
5r 2b 2g
...
9r 8y
ルール:
- 可能性を新しい行で分割するか、ある種のセパレーター(/ ,; | \または私が見逃している他のセパレーター)で出力するかを選択できます。
これはcodegolfなので、最短のコードが優先されます。
配列のリストとして出力できますか?
—
リーキー修道女
配列の出力について:スコア順に並べられたボールの数は明確であるため
—
ジョナサンアラン
"5r 3b 2g"、[5,0,2,0,3,0,0](これが一貫している限り)出力される可能性がありますか?
b茶色とbl青に使用します。bk黒のため?これら3つにn、eおよびk(最後の文字)を使用できますか?dleruna8色すべて(各3文字目)を識別する方法は?
@Shaggy、ドレルナまたは他の色のような色の表示を使用する場合、いいえ。[5 0 0 4 1 0 0]のような配列を使用する場合は、低から高にソートする必要があります。
—
ミクサン
説明のためだけに、ロニー「ザ・ロケット」オ・サリバンによる147のブレイクの(驚くべき)例があります。
—
アーナルド