Advertisement
Guest User

main.rb

a guest
Aug 14th, 2018
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 1.18 KB | None | 0 0
  1. class Player
  2.  
  3.   def initialize
  4.     @level = 1
  5.     @inventory = []
  6.   end
  7.  
  8.   def level
  9.     @level
  10.   end
  11.  
  12.   def inventory
  13.     @inventory
  14.   end
  15.  
  16.   def dig(hole)
  17.     if hole.used?
  18.       puts "This hole has already been excavated."
  19.     else
  20.       puts "Found a #{hole.contents.name}"
  21.       @inventory.push(hole.contents)
  22.     end
  23.   end
  24.  
  25. end
  26.  
  27. class Hole
  28.  
  29.   def initialize(contents = [])
  30.     @used = false
  31.     @contents = contents
  32.   end
  33.  
  34.   def used?
  35.     @used
  36.   end
  37.  
  38.   def contents
  39.     @contents
  40.   end
  41.  
  42. end
  43.  
  44. class RandomJunk
  45.  
  46.   DESCRIPTORS = ['muddy', 'glittering', 'worthless', 'tin', 'irradiated', 'cursed']
  47.   MIN_VALUE = 1
  48.   MAX_VALUE = 15
  49.  
  50.   def initialize(type)
  51.     @type = type
  52.     generate_item
  53.   end
  54.  
  55.   def type
  56.     @type
  57.   end
  58.  
  59.   def name
  60.     @name
  61.   end
  62.  
  63.   def value
  64.     @value
  65.   end
  66.  
  67.   def generate_item
  68.     descriptor = DESCRIPTORS.sample
  69.     @name = "#{descriptor.capitalize} #{@type.capitalize}"
  70.     @value = rand(MIN_VALUE..MAX_VALUE)
  71.   end
  72. end
  73.  
  74. junk = RandomJunk.new(:amulet)
  75. hole = Hole.new(junk)
  76. player = Player.new
  77.  
  78. player.dig(hole)
  79.  
  80. puts "Items in inventory: "
  81.  
  82. player.inventory.each do |item|
  83.   puts item.name
  84. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement