Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/ruby
- class Dragon
- def initialize name
- @name = name
- @asleep = false
- @stuffInBelly = 10 # He's full.
- @stuffInIntestine = 0 # He doesn't need to go.
- puts @name + ' is born.'
- end
- def feed
- puts 'You feed ' + @name + '.'
- @stuffInBelly = 10
- passageOfTime
- end
- def walk
- puts 'You walk ' + @name + '.'
- @stuffInIntestine = 0
- passageOfTime
- end
- def putToBed
- puts 'You put ' + @name + ' to bed.'
- @asleep = true
- 3.times do
- if @asleep
- passageOfTime
- end
- if @asleep
- puts @name + ' snores, filling the room with smoke.'
- end
- end
- if @asleep
- @asleep = false
- puts @name + ' wakes up slowly.'
- end
- end
- def toss
- puts 'You toss ' + @name + ' up into the air.'
- puts 'He giggles, which singes your eyebrows.'
- passageOfTime
- end
- def rock
- puts 'You rock ' + @name + ' gently.'
- @asleep = true
- puts 'He briefly dozes off...'
- passageOfTime
- if @asleep
- @asleep = false
- puts '...but wakes when you stop.'
- end
- end
- private
- # "private" means that the methods defined here are
- # methods internal to the object. (You can feed
- # your dragon, but you can't ask him if he's hungry.)
- def hungry?
- # Method names can end with "?".
- # Usually, we only do this if the method
- # returns true or false, like this:
- @stuffInBelly <= 2
- end
- def poopy?
- @stuffInIntestine >= 8
- end
- def passageOfTime
- if @stuffInBelly > 0
- # Move food from belly to intestine.
- @stuffInBelly = @stuffInBelly - 1
- @stuffInIntestine = @stuffInIntestine + 1
- else # Our dragon is starving!
- if @asleep
- @asleep = false
- puts 'He wakes up suddenly!'
- end
- puts @name + ' is starving! In desperation, he ate YOU!'
- exit # This quits the program.
- end
- if @stuffInIntestine >= 10
- @stuffInIntestine = 0
- puts 'Whoops! ' + @name + ' had an accident...'
- end
- if hungry?
- if @asleep
- @asleep = false
- puts 'He wakes up suddenly!'
- end
- puts @name + '\'s stomach grumbles...'
- end
- if poopy?
- if @asleep
- @asleep = false
- puts 'He wakes up suddenly!'
- end
- puts @name + ' does the potty dance...'
- end
- end
- end
- pet = Dragon.new 'Norbert'
- while not @stuffInBelly == 0
- a = gets.chomp.downcase
- if a == 'walk'
- pet.walk
- elsif a == 'toss'
- pet.toss
- elsif a == 'rock'
- pet.rock
- elsif a == 'putToBed'
- pet.putToBed
- elsif a == 'feed'
- pet.feed
- elsif a == 'sleep'
- pet.putToBed
- elsif a == '?'
- puts 'available commands are as follows: walk,toss,rock,sleep,feed,quit'
- elsif a == 'quit'
- exit
- end
- end
Add Comment
Please, Sign In to add comment