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
-
#color ⇒ Color
Farbe des überdeckenden Spielsteins, falls vorhanden, sonst nil.
-
#coordinates ⇒ Coordinates
readonly
Die X-Y-Koordinaten des Feldes.
Instance Method Summary collapse
-
#==(other) ⇒ Boolean
Vergleicht zwei Felder.
-
#empty? ⇒ Boolean
True, wenn das Feld nicht durch einen Spielstein überdeckt ist, sonst false.
-
#initialize(x, y, color = nil) ⇒ Field
constructor
Erstellt ein neues leeres Feld.
-
#to_s ⇒ String
Textuelle Darstellung des Feldes.
- #x ⇒ Object
- #y ⇒ Object
Constructor Details
#initialize(x, y, color = nil) ⇒ Field
Erstellt ein neues leeres Feld.
20 21 22 23 |
# File 'lib/software_challenge_client/field.rb', line 20 def initialize(x, y, color = nil) @color = color @coordinates = Coordinates.new(x, y) end |
Instance Attribute Details
#color ⇒ Color
Returns Farbe des überdeckenden Spielsteins, falls vorhanden, sonst nil.
10 11 12 |
# File 'lib/software_challenge_client/field.rb', line 10 def color @color end |
#coordinates ⇒ Coordinates (readonly)
Returns die X-Y-Koordinaten des Feldes.
13 14 15 |
# File 'lib/software_challenge_client/field.rb', line 13 def coordinates @coordinates end |
Instance Method Details
#==(other) ⇒ Boolean
Vergleicht zwei Felder. Felder sind gleich, wenn sie gleiche Koordinaten und gleichen Typ haben.
28 29 30 31 |
# File 'lib/software_challenge_client/field.rb', line 28 def ==(other) coordinates == other.coordinates && color == other.color end |
#empty? ⇒ Boolean
Returns true, wenn das Feld nicht durch einen Spielstein überdeckt ist, sonst false.
42 43 44 |
# File 'lib/software_challenge_client/field.rb', line 42 def empty? color.nil? end |
#to_s ⇒ String
Returns Textuelle Darstellung des Feldes.
47 48 49 |
# File 'lib/software_challenge_client/field.rb', line 47 def to_s empty? ? '_' : color.value end |
#x ⇒ Object
33 34 35 |
# File 'lib/software_challenge_client/field.rb', line 33 def x coordinates.x end |
#y ⇒ Object
37 38 39 |
# File 'lib/software_challenge_client/field.rb', line 37 def y coordinates.y end |