Sha256: 5a6a958e1cde0c17a568eedbee7ab22ca1ec19ceba26cfbbc5acc31c681e1688
Contents?: true
Size: 616 Bytes
Versions: 2
Compression:
Stored size: 616 Bytes
Contents
require_relative 'location' module Model class Compass DIRECTIONS = { up: [0, 1], left: [-1, 0], down: [0, -1], right: [1, 0] } attr_reader :direction def initialize(direction) @direction = direction end def translate_location(location) Location.new( location.x + DIRECTIONS[direction][0], location.y + DIRECTIONS[direction][1] ) end def turn dir_index = DIRECTIONS.keys.index(direction) dir_index += 1 dir_index %= DIRECTIONS.length self.class.new(DIRECTIONS.keys[dir_index]) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
karel-interpreter-0.2.0 | lib/karel/model/compass.rb |
karel-interpreter-0.1.0 | lib/karel/model/compass.rb |