Class: Direction

Inherits:
TypesafeEnum::Base
  • Object
show all
Defined in:
lib/software_challenge_client/direction.rb

Overview

Die sechs möglichen Bewegungsrichtungen auf dem Spielbrett. Die Richtungen sind:

  • UP_RIGHT

  • RIGHT

  • DOWN_RIGHT

  • DOWN_LEFT

  • LEFT

  • UP_LEFT

Zugriff erfolgt z.B. durch Direction::UP_RIGHT.

Instance Method Summary collapse

Instance Method Details

#translate(start, 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.is_on_board geprüft werden.

Parameters:

  • start (CubeCoordinates)

    Das zu verschiebende Koordinatenpaar.

  • distance (Integer) (defaults to: 1)

    Um wieviele Felder in die Richtung verschoben werden soll.



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/software_challenge_client/direction.rb', line 29

def translate(start, distance = 1)
  shiftX = start.x
  shiftY = start.y
  shiftZ = start.z
  case self.key
  when :RIGHT
    shiftX = start.x + distance
    shiftY = start.y - distance
  when :LEFT
    shiftX = start.x - distance
    shiftY = start.y + distance
  when :UP_RIGHT
    shiftX = start.x + distance
    shiftZ = start.z - distance
  when :UP_LEFT
    shiftY = start.y + distance
    shiftZ = start.z - distance
  when :DOWN_RIGHT
    shiftY = start.y - distance
    shiftZ = start.z + distance
  when :DOWN_LEFT
    shiftX = start.x - distance
    shiftZ = start.z + distance
  end
  return CubeCoordinates.new(shiftX, shiftY, shiftZ)
end