Class: Direction
- Inherits:
-
TypesafeEnum::Base
- Object
- TypesafeEnum::Base
- Direction
- Defined in:
- lib/software_challenge_client/direction.rb
Overview
Die acht möglichen Bewegungsrichtungen auf dem Spielbrett. Die Richtungen sind:
-
UP
-
UP_RIGHT
-
RIGHT
-
DOWN_RIGHT
-
DOWN
-
DOWN_LEFT
-
LEFT
-
UP_LEFT
Zugriff erfolgt z.B. durch Direction::UP_RIGHT.
Instance Method Summary collapse
-
#translate(coordinates, distance = 1) ⇒ Object
Verschiebt den durch das Koordinatenpaar angegebenen Punkt in die entsprechende Richtung.
Instance Method Details
#translate(coordinates, distance = 1) ⇒ Object
Verschiebt den durch das Koordinatenpaar angegebenen Punkt in die entsprechende Richtung. Der resultierende Punkt kann ausserhalb des Spielbrettes liegen. Dies kann mit GameRuleLogic.inside_bounds? geprüft werden.
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/software_challenge_client/direction.rb', line 33 def translate(coordinates, distance = 1) case key when :UP Coordinates.new(coordinates.x, coordinates.y + distance) when :UP_RIGHT Coordinates.new(coordinates.x + distance, coordinates.y + distance) when :RIGHT Coordinates.new(coordinates.x + distance, coordinates.y) when :DOWN_RIGHT Coordinates.new(coordinates.x + distance, coordinates.y - distance) when :DOWN Coordinates.new(coordinates.x, coordinates.y - distance) when :DOWN_LEFT Coordinates.new(coordinates.x - distance, coordinates.y - distance) when :LEFT Coordinates.new(coordinates.x - distance, coordinates.y) when :UP_LEFT Coordinates.new(coordinates.x - distance, coordinates.y + distance) end end |