背景:使用一个类,我正在构建一个类似hang子手的游戏,其中玩家1输入一个要猜测的单词,玩家2尝试猜测它。分配给玩家2的猜测数与相关单词有关,但重复的猜测不计入玩家。红宝石 - 编写一个猜测字母的程序
每个猜测应该通过显示他们猜测单词的进度来向玩家2提供连续的反馈,这应该在每个猜测阶段结束时打印出来。例如)'代码'一词将显示为“_ _ _ _ ”,如果字母“o”被猜测,反馈将看起来像“ _ o _ _”等。一旦该单词被猜测或者球员还剩0次,则宣布获胜者。
问题1:我无法让程序在game_won时关闭?方法评估为true。它继续运行,直到尝试== game_word.length + 2.关于如何用获胜声明结束程序的任何想法?
问题2:我尝试添加一个game_lost方法,但一旦玩家2尝试完成时尝试创建一个实例变量(尝试创建一个与接口中的尝试绑定的实例变量,但每当它被外部调用问题3:每当输入一个不正确的字母时,就会出现一个错误信息,说明它是一个零类,而不是一个整数。我怎样才能创建一个函数方法来指明游戏何时丢失?
问题3: “不,再试一次...”的答复打印出来的次数与单词的长度一样多,似乎是在guess_the_letter方法中打印出最后一次评估的次数x次。 ISSU e 4:如果输入的单词包含多个同一个字母,则单词进度更新将出现与该单词存在于游戏单词中的次数相同的次数。 (似乎是问题3的类似问题)任何想法,我在做什么错在这里。
class GuessingGame
def initialize(word)
@word = word.downcase
@display_word = "_" * word.length
end
# Take a guess in the form of a letter and check to see if it is in the
# target word, update the word pattern to include the missing letter
def guess_the_letter(g_letter)
g_letter.downcase
@word.split("").each_with_index do |w_letter, index|
if g_letter == w_letter
@display_word[index] = g_letter
puts "Here is your progress towards guessing the word:"
p @display_word
end
if [email protected]? (g_letter)
puts "Nope, try again..."
end
end
end
# Determine winning conditions
def game_won?
if @word == @display_word
puts "Congratulations Player 2, you won!"
true
else
false
end
end
def game_lost?
#method body
end
end
puts "Welcome to the Word Guessing Game!"
puts "This game is for 2 players."
puts "Player 1, please enter a word for player 2 to guess..."
game_word = gets.chomp
game = GuessingGame.new(game_word)
attempts = 0
guessed_letters = []
#Create an interface for the users to play the game
until attempts == game_word.length + 2
puts "Player 2, please guess a letter..."
letter_guess = gets.chomp
if guessed_letters.include? letter_guess
puts "You already tried that letter, enter a new one."
letter_guess = gets.chomp
end
guessed_letters << letter_guess
game.guess_the_letter(letter_guess)
game.game_won?
attempts += 1
end
请在尝试传达复杂概念时养成使用段落的习惯。你的问题是一段难以理解的文字。另外,不要在你的问题中加入“编辑”之类的东西。我们不关心你的问题在过去是否被严重地表述过,只要它现在已经写得很好*(编辑历史也可以用几种非常好的格式提供)。 –
谢谢,我对文本块进行了一些编辑,使其更清晰。仍然习惯了网站@JörgWMittag – Dan