【发布时间】:2022-02-04 18:23:15
【问题描述】:
我正在 Elixir 中重新创建流行的文字游戏“Wordle”。如果用户不输入 5 个字母的单词,我想给他们反馈。到目前为止,我得到了这个:
def play do
guess = IO.gets("Guess a 5 letter word: ")
guess = String.trim(guess)
guess = String.downcase(guess)
attempt(guess)
end
def attempt(@correct_word) do
"You won!"
end
def attempt(guess) when byte_size(guess) != 5 do
"Guess must be 5 letters"
play()
end
def attempt(guess) when byte_size(guess) == 5 do
determine_guess_result(guess)
"You have x guesses left"
end
问题是这条线永远不会显示:"Guess must be 5 letters",因为我在之后立即调用play(),所以它永远不会从函数返回
这是如何在 Elixir 中实现的,我可以显示这一行,然后再次调用 play() 给用户下一个回合?
【问题讨论】:
标签: elixir