Sha256: 1e0d9aa2e892718d6d7b28ff200d20a979f84700f8f6873553e3cd69c1cccf61

Contents?: true

Size: 1.24 KB

Versions: 6

Compression:

Stored size: 1.24 KB

Contents

# encoding: UTF-8
require_relative 'field_type'

# Ein Feld des Spielfelds. Ein Spielfeld ist durch die Koordinaten eindeutig identifiziert.
# Das type Attribut gibt an, um welchen Feldtyp es sich handelt
class Field
  # @!attribute [rw] type
  # @return [FieldType] der Typ des Feldes
  attr_accessor :type
  # @!attribute [r] x
  # @return [Integer] die X-Koordinate des Feldes (0 bis 9, 0 ist ganz links, 9 ist ganz rechts)
  attr_reader :x
  # @!attribute [r] y
  # @return [Integer] die Y-Koordinate des Feldes (0 bis 9, 0 ist ganz unten, 9 ist ganz oben)
  attr_reader :y

  # Konstruktor
  #
  # @param type [FieldType] Feldtyp
  # @param x [Integer] X-Koordinate
  # @param y [Integer] Y-Koordinate
  def initialize(x, y, type)
    @type = type
    @x = x
    @y = y
  end

  # Vergleicht zwei Felder. Felder sind gleich, wenn sie gleiche Koordinaten und gleichen Typ haben.
  # @return [Boolean] true bei Gleichheit, false sonst.
  def ==(other)
    type == other.type &&
      x == other.x &&
      y == other.y
  end

  # @return [Coordinates] Die Koordinaten des Feldes als Koordinatenpaar.
  def coordinates
    Coordinates.new(x, y)
  end

  # @return [String] Textuelle Darstellung des Feldes.
  def to_s
    "Feld (#{x},#{y}), Typ = #{type}"
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
software_challenge_client-19.1.0 lib/software_challenge_client/field.rb
software_challenge_client-19.0.4 lib/software_challenge_client/field.rb
software_challenge_client-19.0.3 lib/software_challenge_client/field.rb
software_challenge_client-19.0.2 lib/software_challenge_client/field.rb
software_challenge_client-19.0.1 lib/software_challenge_client/field.rb
software_challenge_client-19.0.0 lib/software_challenge_client/field.rb