class Snake::Model::Apple
Attributes
column[RW]
game[R]
row[RW]
Public Class Methods
new(game)
click to toggle source
# File examples/snake/model/apple.rb, line 7 def initialize(game) @game = game end
Public Instance Methods
generate(initial_row: nil, initial_column: nil)
click to toggle source
generates a new location from scratch or via dependency injection of what cell is (for testing purposes)
# File examples/snake/model/apple.rb, line 12 def generate(initial_row: nil, initial_column: nil) if initial_row && initial_column self.row, self.column = initial_row, initial_column else self.row, self.column = @game.height.times.zip(@game.width.times).reject do |row, column| @game.snake.vertebrae.map {|v| [v.row, v.column]}.include?([row, column]) end.sample end end
inspect()
click to toggle source
inspect is overridden to prevent printing very long stack traces
# File examples/snake/model/apple.rb, line 28 def inspect "#{super[0, 120]}... >" end
remove()
click to toggle source
# File examples/snake/model/apple.rb, line 22 def remove self.row = nil self.column = nil end