使用函式反應式程式設計來實作 Hangman 遊戲的邏輯。
Hangman 是一款簡單的猜字遊戲。
函式反應式程式設計是一種撰寫互動式程式的方式。它和一般觀點的差異在於,你不會寫「按下按鈕時就把計數器加一」,而是寫「計數器的值,等於按鈕被按下的次數總和」。
使用函式反應式程式設計來實作 Hangman 背後的基本邏輯。為此,你需要安裝一套函式反應式程式設計的函式庫,這部分的說明會寫在這個練習所屬語言/軌道的專屬檔案裡。
這個練習不需要第三方函式庫。請忽略關於FRP 函式庫的說明。
有時候,我們必須引發例外。這麼做時,你應該一律附上有意義的錯誤訊息,說明錯誤從何而來。這能讓你的程式碼更容易閱讀,對除錯也有很大的幫助。如果你知道錯誤來源一定會是某種類型,可以選擇引發其中一種內建錯誤類型,但仍然要附上有意義的訊息。
這個練習要求你在遊戲已經結束、玩家卻還想繼續玩時,使用 raise敘述來「拋出」一個 ValueError。只有同時 raise 這個 exception 並附上訊息,測試才會通過。
若要引發帶有訊息的 ValueError,請把訊息寫成 exception 型別的引數:
# when player tries to play, but the game is already over.
raise ValueError("The game has already ended.")