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, piece = nil) ⇒ Field

Erstellt ein neues leeres Feld.

Parameters:

  • x (Integer)

    X-Koordinate

  • y (Integer)

    Y-Koordinate

  • color (Color)

    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, piece = nil)
  @piece = piece
  @coordinates = Coordinates.new(x, y)
end

Instance Attribute Details

#coordinatesCoordinates (readonly)

Returns die X-Y-Koordinaten des Feldes.

Returns:



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

def coordinates
  @coordinates
end

#piecePiece

Returns das Piece auf diesem Feld, falls vorhanden, sonst nil.

Returns:

  • (Piece)

    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.

Returns:

  • (Boolean)

    true bei Gleichheit, sonst false.



28
29
30
# File 'lib/software_challenge_client/field.rb', line 28

def ==(other)
  !other.nil? && coordinates == other.coordinates && piece == other.piece
end

#colorPieceColor

Returns Farbe des Pieces auf dem Feld.

Returns:

  • (PieceColor)

    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.

Returns:

  • (Boolean)

    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

#teamTeam

Returns Team des Pieces auf dem Feld.

Returns:

  • (Team)

    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_sString

Returns Textuelle Darstellung des Feldes.

Returns:

  • (String)

    Textuelle Darstellung des Feldes.



66
67
68
# File 'lib/software_challenge_client/field.rb', line 66

def to_s
  empty? ? '__' : piece.to_ss
end

#xInteger

Returns X-Koordinate des Felds.

Returns:

  • (Integer)

    X-Koordinate des Felds



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

def x
  coordinates.x
end

#yInteger

Returns Y-Koordinate des Felds.

Returns:

  • (Integer)

    Y-Koordinate des Felds



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

def y
  coordinates.y
end