Class: PieceShape
- Inherits:
-
TypesafeEnum::Base
- Object
- TypesafeEnum::Base
- PieceShape
- 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
-
#coordinates ⇒ Object
Die Felder, die der Stein belegt.
-
#dimension ⇒ Object
Eine Koordinate, die das kleinstmögliche Rechteck beschreibt, welches alle Felder umfasst.
-
#size ⇒ Object
Anzahl Felder, die der Stein belegt.
-
#to_s ⇒ Object
Gibt den Form Namen zurück.
-
#transform(rotation, flip) ⇒ Object
Erzeugt eine nach Rotation und Flip transformierte Form.
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
#coordinates ⇒ Object
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 |
#dimension ⇒ Object
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 |
#size ⇒ Object
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_s ⇒ Object
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 |