在這道練習中,你要實作一個程式,判斷一場井字遊戲的狀態。 (你可能也聽過這個遊戲叫「noughts and crosses」或「Xs and Os」。)
遊戲在 3×3 的方格上進行。
玩家輪流在方格上放置X和O。
當某位玩家在方格的橫列、直行或對角線上連成 3 個記號而獲勝,或是整個方格被填滿時,遊戲就結束。
在這道練習中,我們假設由X先下。
你的任務是判斷給定的遊戲處於哪一種狀態。
遊戲狀態有 3 種可能:
如果給定的棋盤不合法,請拋出適當的錯誤。
棋盤符合下列任一條件時,就是不合法:
X先下)。 | |
X | |
___|___|___
| |
| X | O
___|___|___
| |
O | X |
| |
| |
X | O | X
___|___|___
| |
X | X | O
___|___|___
| |
O | X | O
| |
| |
X | X | X
___|___|___
| |
| O | O
___|___|___
| |
| |
| |
| |
O | O | X
___|___|___
| |
| |
___|___|___
| |
| |
| |
| |
X | X | X
___|___|___
| |
O | O | O
___|___|___
| |
| |
| |