Class: PieceShape

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

Overview

Die Form eines Spielsteins. Es gibt folgende Formen:

MONO
DOMINO
TRIO_L
TRIO_I
TETRO_O
TETRO_T
TETRO_I
TETRO_L
TETRO_Z
PENTO_L
PENTO_T
PENTO_V
PENTO_S
PENTO_Z
PENTO_I
PENTO_P
PENTO_W
PENTO_U
PENTO_R
PENTO_X
PENTO_Y

Zugriff z.B. mit PieceShape::PENTO_S

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.c(x, y) ⇒ Object



34
35
36
# File 'lib/software_challenge_client/piece_shape.rb', line 34

def self.c(x, y)
  Coordinates.new(x, y)
end

Instance Method Details

#coordinatesObject

Die Felder, die der Stein belegt



65
66
67
# File 'lib/software_challenge_client/piece_shape.rb', line 65

def coordinates
  CoordinateSet.new(value)
end

#dimensionObject

Eine Koordinate, die das kleinstmögliche Rechteck beschreibt, welches alle Felder umfasst.



70
71
72
# File 'lib/software_challenge_client/piece_shape.rb', line 70

def dimension
  coordinates.area
end

#sizeObject

Anzahl Felder, die der Stein belegt



60
61
62
# File 'lib/software_challenge_client/piece_shape.rb', line 60

def size
  value.size
end

#to_sObject

Gibt den Form Namen zurück



80
81
82
# File 'lib/software_challenge_client/piece_shape.rb', line 80

def to_s
  self.key.to_s
end

#transform(rotation, flip) ⇒ Object

Erzeugt eine nach Rotation und Flip transformierte Form



75
76
77
# File 'lib/software_challenge_client/piece_shape.rb', line 75

def transform(rotation, flip)
  coordinates.rotate(rotation).flip(flip)
end