edu.whs.spin2018.baoapp.model.spiel

## Class BaoSpiel

- java.lang.Object
- - edu.whs.spin2018.baoapp.model.spiel.BaoSpiel

- All Implemented Interfaces:
    TimerListener

      public class BaoSpiel
      extends java.lang.Object
      implements TimerListener

  Stellt ein Bao-BaoSpiel dar und ermöglicht Spielzüge darauf auszuführen.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `BaoSpiel(BaoSpielPresenter baoSpielPresenter, Spieler spielerEins, Spieler spielerZwei, java.lang.String spielTyp, java.lang.String zeitTyp, long zeit, SpielerIndex startenderSpieler)` Repräsentiert ein BaoSpiel wie zu Beginn des Spiels, in jeder Mulde liegen 2 Steine
    `BaoSpiel(Mulde[][] aktuell)` Ein BaoSpiel aus einer bestimmten Spielsituation wird erstellt.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `beendeTimer()` Beendet beide Timer.
    `boolean` | `equals(java.lang.Object o)`
    `Spieler` | `gibAktuellenSpieler()` Gibt den Spieler, der gerade am Zug ist.
    `Mulde[][]` | `gibSpielbrett()` Gibt das Muldenarray des Spielbretts.
    `void` | `macheSpielzug(Position position)` Führt einen Spielzug von der übergebenden Startposition aus.
    `void` | `onAnimationEnde()` Wird vom Presenter aufgerufen, wenn die Animation auf der View beendet wurde.
    `void` | `onFinish()` Wird aufgerufen, wenn der BaoTimer abgelaufen ist.
    `void` | `onTick(long millis)` Wird bei jedem Tick des BaoTimers aufgerufen um die uebrige Zeit weiterzuleiten.
    `void` | `onTimerStart()` Wird bei jedem TimerStart aufgerufen.

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### BaoSpiel

          public BaoSpiel(BaoSpielPresenter baoSpielPresenter,
                          Spieler spielerEins,
                          Spieler spielerZwei,
                          java.lang.String spielTyp,
                          java.lang.String zeitTyp,
                          long zeit,
                          SpielerIndex startenderSpieler)

      Repräsentiert ein BaoSpiel wie zu Beginn des Spiels, in jeder Mulde liegen 2 Steine
      Parameters:
        `baoSpielPresenter` - - der baoSpielPresenter, der für die Verarbeitung zuständig ist
        `spielerEins` - - der erste Spieler
        `spielerZwei` - - der zweite Spieler
        `spielTyp` - - der Spielmodus
        `zeitTyp` - - der Zeitmodus (Rundenzeit, Spielzeit, keine Zeit)
        `zeit` - - die Startzeit der Timer
        `startenderSpieler` - - der Index des Spielers, der das Spiel beginnt

    - #### BaoSpiel

          public BaoSpiel(Mulde[][] aktuell)

      Ein BaoSpiel aus einer bestimmten Spielsituation wird erstellt. Die bestimmte Spielsituation wird durch das übergebende MuldenArray dargestellt.
      Parameters:
        `aktuell` - repräsentiert das aktuelle MuldenArray

  - ### Method Detail

    - #### onTick

          public void onTick(long millis)

      Description copied from interface: `TimerListener`
      Wird bei jedem Tick des BaoTimers aufgerufen um die uebrige Zeit weiterzuleiten.
      Specified by:
        `onTick` in interface `TimerListener`

    - #### onTimerStart

          public void onTimerStart()

      Description copied from interface: `TimerListener`
      Wird bei jedem TimerStart aufgerufen.
      Specified by:
        `onTimerStart` in interface `TimerListener`

    - #### onFinish

          public void onFinish()

      Description copied from interface: `TimerListener`
      Wird aufgerufen, wenn der BaoTimer abgelaufen ist.
      Specified by:
        `onFinish` in interface `TimerListener`

    - #### macheSpielzug

          public void macheSpielzug(Position position)

      Führt einen Spielzug von der übergebenden Startposition aus. Der ausgeführte Spielzug wird in einem Spielzug-Objekt festgehalten und an die Methode verarbeiteSpielzug() des baoSpielPresenter weitergegeben. Während der Ausführung wird geprüft ob das Spiel beendet ist.
      Parameters:
        `position` - - ist die Position der Mulde, bei der der Spielzug angefangen wird.

    - #### gibSpielbrett

          public Mulde[][] gibSpielbrett()

      Gibt das Muldenarray des Spielbretts.
      Returns:
        Muldenarray.

    - #### equals

          public boolean equals(java.lang.Object o)

      Overrides:
        `equals` in class `java.lang.Object`

    - #### onAnimationEnde

          public void onAnimationEnde()

      Wird vom Presenter aufgerufen, wenn die Animation auf der View beendet wurde.

    - #### gibAktuellenSpieler

          public Spieler gibAktuellenSpieler()

      Gibt den Spieler, der gerade am Zug ist.
      Returns:
        den aktuellen Spieler

    - #### beendeTimer

          public void beendeTimer()

      Beendet beide Timer. Wird beim Beenden der Activity aufgerufen.