Class: Direction
- Inherits:
-
TypesafeEnum::Base
- Object
- TypesafeEnum::Base
- Direction
- 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
-
#translate(start, distance = 1) ⇒ Object
Verschiebt den durch das Koordinatenpaar angegebenen Punkt in die entsprechende Richtung.
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.
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 |