Class: Field

Inherits:
Object
  • Object
show all
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

Instance Method Summary collapse

Constructor Details

#initialize(x, y, color = nil) ⇒ Field

Erstellt ein neues leeres Feld.

Parameters:

  • x (Integer)

    X-Koordinate

  • y (Integer)

    Y-Koordinate

  • color (Color) (defaults to: nil)

    Farbe des Spielsteins, der das Feld überdeckt, nil falls kein Spielstein es überdeckt



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

#colorColor

Returns Farbe des überdeckenden Spielsteins, falls vorhanden, sonst nil.

Returns:

  • (Color)

    Farbe des überdeckenden Spielsteins, falls vorhanden, sonst nil



10
11
12
# File 'lib/software_challenge_client/field.rb', line 10

def color
  @color
end

#coordinatesCoordinates (readonly)

Returns die X-Y-Koordinaten des Feldes.

Returns:



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.

Returns:

  • (Boolean)

    true bei Gleichheit, sonst false.



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.

Returns:

  • (Boolean)

    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_sString

Returns Textuelle Darstellung des Feldes.

Returns:

  • (String)

    Textuelle Darstellung des Feldes.



47
48
49
# File 'lib/software_challenge_client/field.rb', line 47

def to_s
  empty? ? '_' : color.value
end

#xObject



33
34
35
# File 'lib/software_challenge_client/field.rb', line 33

def x
  coordinates.x
end

#yObject



37
38
39
# File 'lib/software_challenge_client/field.rb', line 37

def y
  coordinates.y
end