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'
→ Ссылка