You have includes?
in your code. The method is include?
(no 's')
not letting me use .include? (trying to write ruby game)
-
02-06-2022 - |
Question
I'm trying to write a text-based ruby game, and I can't figure out what's not allowing my code to use the .includes? method.
These are the errors I'm getting:
game.rb:31:in `home': undefined method `includes?' for "run":String (NoMethodError)
from game.rb:20:in `call'
from game.rb:20:in `play'
from game.rb:69:in `<main>'
If I use the if move == "run" method, it works fine, but when I do include? this error pops up. I'm not sure why it lets me do == but not .includes?
This is my main game.rb code:
require './levels'
include Levels
class Game
def initialize(start)
@quips = [
"You died. Noob.",
"Nice job, you lost.",
"Looooooserrrrr."
]
@start = start
end
def play
next_room = @start
while true
puts "\n---------"
room = method(next_room)
next_room = room.call
end
end
def home
home_text
puts " Do you run out to see what's going on or stay inside and hope the problem goes away?"
prompt; move = gets.chomp
if move.includes? "run"
return :town
else
die("Your house catches on fire and collapses on you.")
end
end
end
a_game = Game.new(:home).play
and my other file levels.rb is this:
module Levels
def prompt
puts
print " > "
end
def die(why)
puts
puts " #{why} #{@quips[rand(@quips.length)]}"
Process.exit(1)
end
def bad_input
puts <<-TEXT
Learn to follow instructions!
TEXT
return :die
end
def home_text
puts <<-TEXT
You wake up to the smell of smoke in your room. Jolting up from your bed, you
look around the room and see a heavy cloud of smoke covering your ceiling. There
are piercing sounds of screaming outside, coupled with terrorizing roars and howls.
TEXT
end
end
Any help is appreciated. Thank you.
Solution
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow