Class: Direction

Inherits:
TypesafeEnum::Base
  • Object
show all
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

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