Я пытаюсь запустить следующий код (моей целью было создать «игру», в которой я создаю два объекта и заставляю их «сражаться» друг с другом):
#player definition
Player=Struct.new(:health, :dmg)
active_player=Player.new(10, 2)
puts "test"
#monster definition
class Monster
attr_accessor :health, :damage
def initialize(health, damage)
@health=health
@damage=damage
end
end
big_spider=Monster.new(4, 1)
player_win=false
monster_win=false
#the fight itself
while (!player_win) or (!monster_win)
big_spider.health-=active_player.dmg
active_player.health-=big_spider.damage
if big_spider.health<=0
player_win=true
elsif active_player.health<=0
monster_win=true
end
end
#prints out who wins
case monster_win
when true
puts "the monster wins"
when false
puts "the player wins"
else
puts "error"
end
gets.chomp #is there to ensure that the program doesn't exit immediately after execution(yes i have tried removing it)
Когда я пытаюсь запустите этот код (из Windows 10 PowerShell), он распечатает "test", а затем остановится, как если бы он запрашивал ввод, однако, когда я пытаюсь ввести что-либо, оно не появляется на экране, и я не могу реагировать с PowerShell любым другим способом, кроме закрытия / минимизации (я даже пытаюсь нажать Ctrl + D , как при выходе из irb). Я пробовал запускать код многими другими способами (через Notepad ++, из файлового проводника и через cmd.exe), но все равно столкнулся с той же проблемой. Когда я закомментирую строки из комментария «сам бой» до конца кода, программа выводит «тест», затем запрашивает ввод и прекращает выполнение. Я действительно нигде не нашел никого с подобной проблемой.