Class: Board

Inherits:
Object
  • Object
show all
Defined in:
lib/software_challenge_client/board.rb

Overview

Ein Spielbrett bestehend aus 65 Feldern.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeBoard

Initializes the board



17
18
19
# File 'lib/software_challenge_client/board.rb', line 17

def initialize
  @fields = []
end

Instance Attribute Details

#fieldsArray<Field> (readonly)

Note:

Besser über die #field Methode auf Felder zugreifen.

Returns Ein Feld wird an der Position entsprechend seines Index im Array gespeichert.

Returns:

  • (Array<Field>)

    Ein Feld wird an der Position entsprechend seines Index im Array gespeichert.



14
15
16
# File 'lib/software_challenge_client/board.rb', line 14

def fields
  @fields
end

Instance Method Details

#==(other) ⇒ Object



25
26
27
28
29
30
# File 'lib/software_challenge_client/board.rb', line 25

def ==(other)
  fields.each_with_index do |field, index|
    return false if field != other.field(index)
  end
  true
end

#add_field(field) ⇒ Object



32
33
34
# File 'lib/software_challenge_client/board.rb', line 32

def add_field(field)
  @fields[field.index] = field
end

#field(index) ⇒ Field

Zugriff auf die Felder des Spielfeldes

Parameters:

  • index (Integer)

    Der Index des Feldes

Returns:

  • (Field)

    Das Feld mit dem gegebenen Index. Falls das Feld nicht exisitert (weil der Index ausserhalb von 0..64 liegt), wird ein neues Feld vom Typ INVALID zurückgegeben.



42
43
44
45
# File 'lib/software_challenge_client/board.rb', line 42

def field(index)
  return Field.new(FieldType::INVALID, index) if index.negative?
  fields.fetch(index, Field.new(FieldType::INVALID, index))
end

#to_sObject



21
22
23
# File 'lib/software_challenge_client/board.rb', line 21

def to_s
  fields.map { |f| f.type.value }.join(' ')
end