Ruby не понимает метод < и > когда дело касается содержимого массива
Хотел чтобы цикл шел до тех пор, пока значение hp в массиве не упадет до 0 или меньше, но код работает только при == или != Если вписать после while >= или > выдает ошибку:
G:/ruby/mob.rb:3:in <main>': undefined method >' for nil:NilClass (NoMethodError)
Подскажите что не так.
Вот сам код:
Mass = [hp=10]
puts 'damage'
while Mass[hp] > 0
dmg = gets.chomp
Mass.pop hp
hp = hp-dmg.to_i
Mass.push hp
puts Mass.to_s + ' HP left'
end
puts 'mob is dead'
Ответы (1 шт):
Автор решения: Василиса
→ Ссылка
Вам нужен хэш, а не массив. В него вы может сложить все нужные вам данные под ключами и работать с ними
mob = {hp: 10}
puts 'damage'
while mob[:hp] > 0
damage = gets.chomp
mob[:hp] -= damage.to_i
puts "#{mob[:hp]} HP left"
end
puts 'mob is dead'