Sha256: e942d2740333faf31fa5a597e49a45673478f5a9fa9ff4eb19301cc26ef0befe
Contents?: true
Size: 1.26 KB
Versions: 8
Compression:
Stored size: 1.26 KB
Contents
require 'fileutils' require_relative 'snake' require_relative 'apple' class Snake module Model class Game WIDTH_DEFAULT = 40 HEIGHT_DEFAULT = 40 FILE_HIGH_SCORE = File.expand_path(File.join(Dir.home, '.glimmer-snake')) attr_reader :width, :height attr_accessor :snake, :apple, :over, :score, :high_score alias over? over def initialize(width = WIDTH_DEFAULT, height = HEIGHT_DEFAULT) @width = width @height = height @snake = Snake.new(self) @apple = Apple.new(self) FileUtils.touch(FILE_HIGH_SCORE) @high_score = File.read(FILE_HIGH_SCORE).to_i rescue 0 end def score=(new_score) @score = new_score self.high_score = @score if @score > @high_score end def high_score=(new_high_score) @high_score = new_high_score File.write(FILE_HIGH_SCORE, @high_score.to_s) rescue => e puts e.full_message end def start self.over = false self.score = 0 self.snake.generate self.apple.generate end # inspect is overridden to prevent printing very long stack traces def inspect "#{super[0, 75]}... >" end end end end
Version data entries
8 entries across 8 versions & 1 rubygems