Как мне сделать так, чтобы Ruby повторно обрабатывал метод rand в моей переменной "atk" для каждого экземпляра? Прямо сейчас, программа берет случайный номер атка на первом проходе и затем использует его для остальной части программы. Любой совет очень приветствуется!
playerhp = 100
enemyhp = 100
monster = ["Johnny Bravo", "Father Christmas", "Boobzilla", "Lady Gaga", "Derpy-chan"]
m = monster[rand(monster.length)]
melee = [7, 10, 12, 14, 22]
atk = melee[rand(melee.length)]
puts "Your are approached by a horrid looking " + m + "!"
sleep(1)
puts "The " + m + " looks you coldy in the eye and then charges for an attack!"
sleep(1)
while playerhp > 0 do
puts "The " + m + " has " + enemyhp.to_s + " remaining. What will you do? (type 'attack' or 'defend')"
action = gets.chomp
if action == "attack" then
thisatk = atk.to_i
enemyhp = enemyhp - thisatk
puts "You hit the " + m + " for " + thisatk.to_s + " damage!"
end
if action == "defend" then
puts "You crouch in a defensive position!"
end
if enemyhp < 1 then
puts "You completely destroyed that " + m + "! Victory!"
break
end
end
Я уверен, что это худший код на Ruby, который вы когда-либо видели, но имейте в виду, что это моя первая программа на Ruby (только сегодня запущенная) . Я делаю это в первый день, когда провожу изучение любого языка.
Я не умею читать книги ... единственный способ выучить язык - создать с ним боевую игру. Я считаю, что это лучший способ получить меня в среде, которую я узнаю и многому учусь одновременно.