Exemplo n.º 1
0
  /**
   * Die Methode beschreibt den �berlauf
   *
   * @param neuePosition
   * @param figurId
   * @return neuePosition, figurId
   */
  @Override
  public int ueberlauf(int neuePosition, int figurId) {
    int hit = 0;
    if (neuePosition > 39) {
      for (int i = 0; i < figurenUeberlauf.size(); i++) {
        if (spielerAmZug.getFigur(figurId) == figurenUeberlauf.get(i)
            && spielerAmZug.getFigur(figurId).getPosition().getTyp() != FeldTyp.Endfeld) {
          // throw new RuntimeException("Figur will 2 mal ueber 0 laufen!");
        }
      }
      figurenUeberlauf.add(spielerAmZug.getFigur(figurId));
      hatUeberlauf = true;
      return (neuePosition - 40);
    }

    for (int i = 0; i < figurenUeberlauf.size(); i++) {
      if (spielerAmZug.getFigur(figurId) == figurenUeberlauf.get(i)
          && spielerAmZug.getFigur(figurId).getPosition().getTyp() != FeldTyp.Endfeld) {
        hit++;
      }
    }

    if (hit != 0) {
      hatUeberlauf = true;
    } else {
      hatUeberlauf = false;
    }

    return neuePosition;
  }
Exemplo n.º 2
0
 /**
  * Methode gibt die ID der Figur zurueck auf einem feld
  *
  * @param int feld feld das ueberprueft wird
  * @return int i id der Figur
  */
 public int figurIdAufFeld(int feld) {
   if (spielbrett.getFeld(feld).getFigur() != null) {
     for (int i = 0; i < 4; i++) {
       if (spielerAmZug.getFigur(i) == spielbrett.getFeld(feld).getFigur()) {
         return i;
       }
     }
   }
   throw new RuntimeException("Keine Figur ausgewaehlt!");
 }
Exemplo n.º 3
0
 /** Die Methode beendet einen Zug. */
 public void zugBeenden() {
   int zaehler = 0;
   for (int i = 0; i < 4; i++) {
     if (spielerAmZug.getFigur(i).getPosition().getTyp() == FeldTyp.Endfeld) {
       zaehler++;
     }
   }
   if (zaehler == 4) {
     spielGewonnen(spielerAmZug);
   }
   for (int i = 0; i < spieler.size(); i++) {
     if (count == spieler.size()) {
       spielerAmZug = spieler.get(count - spieler.size());
       darfWuerfeln = true;
       count = 1;
       break;
     } else {
       spielerAmZug = spieler.get(count);
       darfWuerfeln = true;
       count = count + 1;
       break;
     }
   }
 }
Exemplo n.º 4
0
  /** Die Methode ueberpreuft ob der Spieler sich auf dem Endfeld bewegen darf */
  @Override
  public boolean zugGueltigAufEndfeld(int neuePosition, int n) {
    int x = 0;
    switch (spielerAmZug.getFarbe()) {
      case rot:
        x = 71 - spielerAmZug.getFigur(n).getPosition().getId();
        if (spielerAmZug.getFigur(n).getPosition().getId() + getBewegungsWert() > 71) {
          return false;
        } else {
          for (int i = spielerAmZug.getFigur(n).getPosition().getId();
              i < spielerAmZug.getFigur(n).getPosition().getId() + getBewegungsWert();
              i++) {
            if (figurAufFeld(i + 1)) {
              return false;
            }
          }
          return true;
        }

      case blau:
        x = 59 - spielerAmZug.getFigur(n).getPosition().getId();
        if (spielerAmZug.getFigur(n).getPosition().getId() + getBewegungsWert() > 59) {
          return false;
        } else {
          for (int i = spielerAmZug.getFigur(n).getPosition().getId();
              i < spielerAmZug.getFigur(n).getPosition().getId() + getBewegungsWert();
              i++) {
            if (figurAufFeld(i + 1)) {
              return false;
            }
          }
          return true;
        }

      case gruen:
        x = 67 - spielerAmZug.getFigur(n).getPosition().getId();
        if (spielerAmZug.getFigur(n).getPosition().getId() + getBewegungsWert() > 67) {
          return false;
        } else {
          for (int i = spielerAmZug.getFigur(n).getPosition().getId();
              i < spielerAmZug.getFigur(n).getPosition().getId() + getBewegungsWert();
              i++) {
            if (figurAufFeld(i + 1)) {
              return false;
            }
          }
          return true;
        }

      case gelb:
        x = 63 - spielerAmZug.getFigur(n).getPosition().getId();
        if (spielerAmZug.getFigur(n).getPosition().getId() + getBewegungsWert() > 63) {
          return false;
        } else {
          for (int i = spielerAmZug.getFigur(n).getPosition().getId();
              i < spielerAmZug.getFigur(n).getPosition().getId() + getBewegungsWert();
              i++) {
            if (figurAufFeld(i + 1)) {
              return false;
            }
          }
          return true;
        }

      default:
        return false;
    }
  }