Sha256: 403d58eb70960709bf15d7a58a6d1c97ed8c46113b3d5289e6476802dfba7956
Contents?: true
Size: 1.26 KB
Versions: 21
Compression:
Stored size: 1.26 KB
Contents
require 'fileutils' require_relative 'snake' require_relative 'apple' class Snake module Model class Game WIDTH_DEFAULT = 20 HEIGHT_DEFAULT = 20 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
21 entries across 21 versions & 1 rubygems