學習軌道
/
CoffeeScript
CoffeeScript
/
練習
/
井字遊戲的狀態
井字遊戲的狀態

井字遊戲的狀態

簡單

說明

在這道練習中,你要實作一個程式,判斷一場井字遊戲的狀態。 (你可能也聽過這個遊戲叫「noughts and crosses」或「Xs and Os」。)

遊戲在 3×3 的方格上進行。 玩家輪流在方格上放置X和O。 當某位玩家在方格的橫列、直行或對角線上連成 3 個記號而獲勝,或是整個方格被填滿時,遊戲就結束。

在這道練習中,我們假設由X先下。

你的任務是判斷給定的遊戲處於哪一種狀態。

遊戲狀態有 3 種可能:

  • 遊戲是ongoing。
  • 遊戲以draw收場。
  • 遊戲以win收場。

如果給定的棋盤不合法,請拋出適當的錯誤。

棋盤符合下列任一條件時,就是不合法:

  • 按照正確的順序輪流下棋時,無法得到這個棋盤(別忘了是由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
___|___|___
   |   |
   |   |
   |   |
透過 GitHub 編輯 連結會在新視窗或分頁中開啟
CoffeeScript Exercism

準備好開始 井字遊戲的狀態 了嗎?

註冊 Exercism,透過 97 個練習 和真人引導來學習並精通 CoffeeScript,全部免費。