銀行は破られ、地元のマフィアの凶悪犯は皆、異常なアリバイを持っています。彼らは自宅でConnect 4をプレイしていました!調査を支援するために、押収されたすべてのConnect 4ボードを検証するプログラムを作成して、位置が実際に有効なConnect 4ゲームからの位置であり、急いで組み立てられていないことを確認するように求められます警察がドアをノックするとすぐに。
接続4のルール:プレーヤーR
とY
7x6グリッドの列にその色のタイルをドロップするように順番にそれを取ります。プレイヤーが列にタイルをドロップすると、その列の一番下の空いている位置を占めるために倒れます。プレイヤーがボード上で自分の色の4タイルの水平、垂直、または斜めのランを獲得した場合、彼らは勝ち、ゲームはすぐに終了します。
たとえば(R
開始時)、次の接続4の位置は不可能です。
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | |R| | | | |
| | |Y| | | | |
|R| |Y| | | | |
プログラムまたは機能は、Connect 4ボードを受け取り、いずれかを返す必要があります
- 位置が不可能であることを示す偽の値、または
- 1から7までの数字の文字列は、その位置に至る移動の可能なシーケンスを示します(列には左から右に番号が付けられ
1
ている7
ため、112
たとえば、列は列の赤い移動1
とそれに続く黄色の移動を示します列1
、続いて列に赤の移動2
)。ソリューションで指定する限り、必要に応じて1234567以外の列番号を選択できます。他の形式でリストを返したい場合; たとえば、配列[2, 4, 3, 1, 1, 3]
としては、動きが何であるかが簡単にわかる限り、それでも問題ありません。
あなたは以外の文字の使用を含む任意の賢明な形式で、ボードを読み取るために選択することができますR
し、Y
プレーヤーのために、しかし、あなたが最初に行くどのプレイヤーを指定する必要があります。ボードは常に6x7で、2人のプレイヤーがいると仮定できます。
受け取るポジションは、標準のConnect 4ボードで少なくとも物理的に作成できると想定できます。つまり、「フローティング」ピースはありません。ボードが空でないと仮定できます。
これはコードゴルフなので、最短の回答が勝ちます。標準の抜け穴が適用されます。
例
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | --> 1234567 (one possible answer)
| | | | | | | |
|R|Y|R|Y|R|Y|R|
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | |R| | | | | --> false
| | |Y| | | | |
|R| |Y| | | | |
| | | | | | | |
| | |Y| | | | |
| | |R| | | | |
| | |Y| | | | | --> 323333 (only possible answer)
| | |R| | | | |
| |Y|R| | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | --> false (this is the position arising after
| |Y|Y|Y|Y| | | the moves 11223344, but using those moves
| |R|R|R|R| | | the game would have ended once R made a 4)
| | | | | | | |
| | | | | | | |
|Y| | | | | | |
|R|Y| | | | | | --> 2134231211 (among other possibilities)
|R|R|Y| | | | |
|Y|R|R|Y| | | |
| | | | | | | |
| | | | | | | |
|Y| | | | | | |
|R|Y| | | | | | --> false (for example, 21342312117 does not
|R|R|Y| | | | | work, because Y has already made a diagonal 4)
|Y|R|R|Y| | |R|
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | --> 112244553 or similar
|Y|Y| |Y|Y| | |
|R|R|R|R|R| | |