Pickominoゲームでは、テーブルの中央にいくつかのタイルがあり、それぞれに異なる正の整数が付いています。プレイヤーは毎ターン、特定の方法でさいころを振って、負でない整数であるスコアを取得します。
次に、プレーヤーはスコアがまだ低いか等しい最も高い番号のタイルを取得し、中央からタイルを削除してスタックに追加します。真ん中のすべての数字がプレーヤーのスコアよりも高いためにこれが不可能な場合、プレーヤーはスタックから一番上のタイル(最後に追加されたもの)を失い、中央に戻されます。プレーヤーにタイルが残っていない場合、何も起こりません。
チャレンジ
自分と対戦するプレーヤーをシミュレートします。中央のタイルのリストと、プレーヤーが獲得したスコアのリストが表示されます。すべてのターンが評価された後、プレーヤーのタイルのリストを返します。
チャレンジルール
- タイルを含むリストが順序付けされていて、整数が2回含まれていないと想定できます。
- 入力の両方のリストを任意の順序で取得できます
- 出力はスタック上のタイルの順序を維持する必要がありますが、リストを上から下にソートするか、下から上にソートするかを決定できます。
一般的なルール
- これはcode-golfなので、バイト単位の最短の回答が優先されます。
コードゴルフ言語では、コードゴルフ言語以外の言語で回答を投稿しないようにしないでください。「あらゆる」プログラミング言語について、可能な限り短い答えを考え出すようにしてください。 - デフォルトのI / Oルールを使用した回答には標準ルールが適用されるため、STDIN / STDOUT、関数/メソッドを適切なパラメーターで使用し、戻り値の型の完全なプログラムを使用できます。
- デフォルトの抜け穴は禁止されています。
- 可能であれば、コードのテスト(TIOなど)のリンクを追加してください。
- 回答の説明を追加することをお勧めします。
例
(6番目のテストケースから取得)
Tiles: [21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Scores: [22, 22, 22, 23, 21, 24, 0, 22]
最初のスコアは22なので、真ん中の最高のタイル<= 22、つまり22自体を取ります。
Middle: [21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Stack: [22]
Remaining scores: [22, 22, 23, 21, 24, 0, 22]
次のスコアは22なので、真ん中の最高のタイルを22以下にします。22はすでに取得されているため、プレーヤーは21を取得する必要があります。
Middle: [23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Stack: [22, 21]
Remaining scores: [22, 23, 21, 24, 0, 22]
次のスコアは22ですが、22以下のすべての数値がすでに取得されています。したがって、プレーヤーはスタックの一番上のタイル(21)を失い、中央に戻ります。
Middle: [21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Stack: [22]
Remaining scores: [23, 21, 24, 0, 22]
次のスコアは23、21、24なので、プレーヤーはこれらのタイルを中央から取得します。
Middle: [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Stack: [22, 23, 21, 24]
Remaining scores: [0, 22]
プレイヤーはバストしてゼロを獲得します。したがって、番号24(スタックの一番上)のタイルが中央に返されます。
Middle: [24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Stack: [22, 23, 21]
Remaining scores: [22]
最後のスコアは22ですが、22以下のすべてのタイルがすでに使用されているため、プレーヤーはスタックの一番上のタイルを失います(21)。
Middle: [21, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Final Stack and Output: [22, 23]
テストケース
(一番上のタイルが出力リストの最後)
Tiles: [21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Scores: [26, 30, 21]
Output: [26, 30, 21]
Tiles: [21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Scores: [35, 35, 36, 36]
Output: [35, 34, 36, 33]
Tiles: [21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Scores: [22, 17, 23, 19, 23]
Output: [23]
Tiles: [21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Scores: []
Output: []
Tiles: [21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Scores: [22, 17, 23, 19, 23, 0]
Output: []
Tiles: [21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Scores: [22, 22, 22, 23, 21, 24, 0, 22]
Output: [22, 23]
Tiles: [1, 5, 9, 13, 17, 21, 26]
Scores: [6, 10, 23, 23, 23, 1, 0, 15]
Output: [5, 9, 21, 17, 13, 1]
Tiles: []
Scores: [4, 6, 1, 6]
Output: []