Sha256: d84ec43a8feaa1b33e260280ccf2cc26dd496d837a8a0fde2d0bb1db4b233ddd
Contents?: true
Size: 1.2 KB
Versions: 2
Compression:
Stored size: 1.2 KB
Contents
# encoding: utf-8 require_relative './util/constants' require_relative 'game_state' require_relative 'player' require_relative 'field_type' require_relative 'field' # Ein Spielbrett bestehend aus 65 Feldern. class Board # @!attribute [r] fields # @note Besser über die {#field} Methode auf Felder zugreifen. # @return [Array<Field>] Ein Feld wird an der Position entsprechend seines # Index im Array gespeichert. attr_reader :fields # Initializes the board def initialize @fields = [] end def to_s fields.map { |f| f.type.value }.join(' ') end def ==(other) fields.each_with_index do |field, index| return false if field != other.field(index) end true end def add_field(field) @fields[field.index] = field end # Zugriff auf die Felder des Spielfeldes # # @param index [Integer] Der Index des Feldes # @return [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. def field(index) return Field.new(FieldType::INVALID, index) if index.negative? fields.fetch(index, Field.new(FieldType::INVALID, index)) end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
software_challenge_client-1.2.1 | lib/software_challenge_client/board.rb |
software_challenge_client-1.2.0 | lib/software_challenge_client/board.rb |