Class: Field
- Inherits:
-
Object
- Object
- Field
- Defined in:
- lib/software_challenge_client/field.rb
Overview
Ein Feld des Spielfelds. Ein Spielfeld ist durch die Koordinaten eindeutig identifiziert.
Instance Attribute Summary collapse
-
#coordinates ⇒ Coordinates
readonly
Die X-Y-Koordinaten des Feldes.
-
#piece ⇒ Piece
Das Piece auf diesem Feld, falls vorhanden, sonst nil.
Instance Method Summary collapse
-
#==(other) ⇒ Boolean
Vergleicht zwei Felder.
-
#color ⇒ PieceColor
Farbe des Pieces auf dem Feld.
-
#empty? ⇒ Boolean
True, wenn das Feld nicht durch einen Spielstein überdeckt ist, sonst false.
-
#initialize(x, y, piece = nil) ⇒ Field
constructor
Erstellt ein neues leeres Feld.
-
#team ⇒ Team
Team des Pieces auf dem Feld.
-
#to_s ⇒ String
Textuelle Darstellung des Feldes.
-
#x ⇒ Integer
X-Koordinate des Felds.
-
#y ⇒ Integer
Y-Koordinate des Felds.
Constructor Details
#initialize(x, y, piece = nil) ⇒ Field
Erstellt ein neues leeres Feld.
20 21 22 23 |
# File 'lib/software_challenge_client/field.rb', line 20 def initialize(x, y, piece = nil) @piece = piece @coordinates = Coordinates.new(x, y) end |
Instance Attribute Details
#coordinates ⇒ Coordinates (readonly)
Returns die X-Y-Koordinaten des Feldes.
9 10 11 |
# File 'lib/software_challenge_client/field.rb', line 9 def coordinates @coordinates end |
#piece ⇒ Piece
Returns das Piece auf diesem Feld, falls vorhanden, sonst nil.
13 14 15 |
# File 'lib/software_challenge_client/field.rb', line 13 def piece @piece end |
Instance Method Details
#==(other) ⇒ Boolean
Vergleicht zwei Felder. Felder sind gleich, wenn sie gleiche Koordinaten und den gleichen Spielstein haben.
28 29 30 |
# File 'lib/software_challenge_client/field.rb', line 28 def ==(other) !other.nil? && coordinates == other.coordinates && piece == other.piece end |
#color ⇒ PieceColor
Returns Farbe des Pieces auf dem Feld.
52 53 54 55 56 57 58 |
# File 'lib/software_challenge_client/field.rb', line 52 def color if piece.nil? nil else piece.color end end |
#empty? ⇒ Boolean
Returns true, wenn das Feld nicht durch einen Spielstein überdeckt ist, sonst false.
61 62 63 |
# File 'lib/software_challenge_client/field.rb', line 61 def empty? piece.nil? end |
#team ⇒ Team
Returns Team des Pieces auf dem Feld.
43 44 45 46 47 48 49 |
# File 'lib/software_challenge_client/field.rb', line 43 def team if piece.nil? nil else piece.color.to_t end end |
#to_s ⇒ String
Returns Textuelle Darstellung des Feldes.
66 67 68 |
# File 'lib/software_challenge_client/field.rb', line 66 def to_s empty? ? '__' : piece.to_ss end |
#x ⇒ Integer
Returns X-Koordinate des Felds.
33 34 35 |
# File 'lib/software_challenge_client/field.rb', line 33 def x coordinates.x end |
#y ⇒ Integer
Returns Y-Koordinate des Felds.
38 39 40 |
# File 'lib/software_challenge_client/field.rb', line 38 def y coordinates.y end |