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
-
#coords ⇒ Coordinates
readonly
Die X-Y-Koordinaten des Feldes.
-
#fishes ⇒ Integer
Die Menge an Fischen auf dem Feld.
-
#piece ⇒ Piece
Das Piece auf diesem Feld, falls vorhanden, sonst nil.
Instance Method Summary collapse
-
#==(other) ⇒ Boolean
Vergleicht zwei Felder.
-
#empty? ⇒ Boolean
True, wenn auf dem Feld kein Spielstein und keine Fische sind, sonst false.
-
#free? ⇒ Boolean
True, wenn auf dem Feld kein Spielstein und mindestens ein Fisch ist, sonst false.
-
#initialize(x, y, piece = nil, fishes = 0) ⇒ 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, fishes = 0) ⇒ Field
Erstellt ein neues leeres Feld.
24 25 26 27 28 |
# File 'lib/software_challenge_client/field.rb', line 24 def initialize(x, y, piece = nil, fishes = 0) @piece = piece @fishes = fishes @coords = Coordinates.new(x, y) end |
Instance Attribute Details
#coords ⇒ Coordinates (readonly)
Returns die X-Y-Koordinaten des Feldes.
9 10 11 |
# File 'lib/software_challenge_client/field.rb', line 9 def coords @coords end |
#fishes ⇒ Integer
Returns die Menge an Fischen auf dem Feld.
17 18 19 |
# File 'lib/software_challenge_client/field.rb', line 17 def fishes @fishes 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.
33 34 35 |
# File 'lib/software_challenge_client/field.rb', line 33 def ==(other) !other.nil? && coords == other.coords && piece == other.piece end |
#empty? ⇒ Boolean
Returns true, wenn auf dem Feld kein Spielstein und keine Fische sind, sonst false.
57 58 59 |
# File 'lib/software_challenge_client/field.rb', line 57 def empty? piece.nil? && fishes == 0 end |
#free? ⇒ Boolean
Returns true, wenn auf dem Feld kein Spielstein und mindestens ein Fisch ist, sonst false.
62 63 64 |
# File 'lib/software_challenge_client/field.rb', line 62 def free? piece.nil? && fishes != 0 end |
#team ⇒ Team
Returns Team des Pieces auf dem Feld.
48 49 50 51 52 53 54 |
# File 'lib/software_challenge_client/field.rb', line 48 def team if piece.nil? nil else piece.team end end |
#to_s ⇒ String
Returns Textuelle Darstellung des Feldes.
67 68 69 |
# File 'lib/software_challenge_client/field.rb', line 67 def to_s piece.nil? ? fishes.to_s : piece.to_ss end |
#x ⇒ Integer
Returns X-Koordinate des Felds.
38 39 40 |
# File 'lib/software_challenge_client/field.rb', line 38 def x coords.x end |
#y ⇒ Integer
Returns Y-Koordinate des Felds.
43 44 45 |
# File 'lib/software_challenge_client/field.rb', line 43 def y coords.y end |