Sha256: 20a365722b242ea438d790162da523a95168aff6d7fa035a0bddd390eb885a0b

Contents?: true

Size: 1.59 KB

Versions: 1

Compression:

Stored size: 1.59 KB

Contents

# encoding: UTF-8
require_relative 'card_type'

# Ein Spieler
class Player
  # @!attribute [r] name
  # @return [String] der Name des Spielers, hat keine Auswirkungen auf das Spiel
  attr_reader :name

  # @!attribute [r] color
  # @return [PlayerColor] die Farbe des Spielers, Rot oder Blau
  attr_reader :color

  # @!attribute [rw] points
  # @return [Integer] der aktuelle Punktestand des Spielers
  attr_accessor :points

  # @!attribute [rw] index
  # @return [Integer] die aktuelle Position des Spielers auf dem Spielbrett,
  #   entspricht index des Feldes, von 0 bis 64
  attr_accessor :index

  # @!attribute [rw] carrots
  # @return [Integer] die aktuelle Anzahl Karotten des Spielers
  attr_accessor :carrots

  # @!attribute [rw] salads
  # @return [Integer] die aktuelle Anzahl Salate des Spielers
  attr_accessor :salads

  # @!attribute [rw] cards
  # @return [Array[CardType]] die noch nicht gespielten Karten
  attr_accessor :cards

  # @!attribute [rw] last_non_skip_action
  # @return [Action] letzte Aktion, die kein Skip war
  attr_accessor :last_non_skip_action

  # @!attribute [rw] must_play_card
  # @return [Boolean] zeigt an, ob eine Karte gespielt werden muss, wird in Zugvalidierung verwendet.
  attr_accessor :must_play_card

  # Konstruktor
  # @param color [PlayerColor] Farbe
  # @param name [String] Name
  def initialize(color, name)
    @color = color
    @name = name
    @points = 0
    @index = 0
    @carrots = 68
    @salads = 2
    @cards = CardType.to_a
  end

  def ==(other)
    color == other.color
  end

  def owns_card_of_type(card_type)
    cards.include? card_type
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
software_challenge_client-1.0.0 lib/software_challenge_client/player.rb