## A nice, sturdy wall to put our bottles on def_slotted_exemplar(:wall, { {:num_bottles, _unset}, {:start_bottles, _unset}}, {}) $ ## The number of bottles we started with wall.define_slot_access(:start_bottles, :writable, :private) $ ## The number of bottles we have left wall.define_slot_access(:num_bottles, :writable, :private) $ _method wall.new(start_bottles) ## Create a new wall with START_BOTTLES of beer sitting on it >> _clone.init(start_bottles) _endmethod $ _private _method wall.init(start_bottles) ## Initialise the amount of beer to START_BOTTLES _self.num_bottles << _self.start_bottles << start_bottles >> _self _endmethod $ _private _method wall.no_beer? ## Are there any bottles of beer left? >> _self.num_bottles < 1 _en