使用函数式响应式编程实现 Hangman 游戏的逻辑。
Hangman 是一个简单的猜单词游戏。
函数式响应式编程 是一种编写交互式程序的方式。它与通常的视角不同:你不再写“按下按钮时让计数器自增”,而是写“计数器的值是按钮被按下次数的总和”。
使用函数式响应式编程实现 Hangman 背后的基本逻辑。为此你需要安装一个 FRP 库,具体做法会在该练习针对具体语言和赛道的文件中说明。
本练习不需要第三方库。请忽略关于FRP library的说明。
有时需要抛出异常。这样做时,应始终附带一条有意义的错误消息,说明错误的来源是什么。这能让代码更易读,也对调试大有帮助。如果你知道错误来源属于某种确定的类型,可以选择抛出内置错误类型中的一种,但仍应附带一条有意义的消息。
本练习要求你使用 raise 语句,在游戏已经结束但玩家还想继续玩时“抛出”ValueError。只有既raise了该exception,又附上一条消息,测试才会通过。
要抛出带消息的ValueError,请把这条消息写成传给exception类型的实参:
# when player tries to play, but the game is already over.
raise ValueError("The game has already ended.")