Beispiel #1
0
 /**
  * Cherche les rois sur l'echiquier
  *
  * @return
  */
 public void findKings() {
   for (int i = 0; i < plateau.size(); i++) {
     if (!plateau.get(i).estVide())
       if (plateau.get(i).getPiece().getClass().getSimpleName().equals(new String("Roi")))
         if (plateau.get(i).getPiece().getCamp().equals("noir")) {
           caseRoiNoir.setPosition(plateau.get(i).getPosition());
           caseRoiNoir.setPiece(new Roi("noir"));
         } else if (plateau.get(i).getPiece().getCamp().equals("blanc")) {
           caseRoiBlanc.setPosition(plateau.get(i).getPosition());
           caseRoiBlanc.setPiece(new Roi("blanc"));
         }
   }
 }
Beispiel #2
0
  /**
   * fait un deplacement sans test d'echec
   *
   * @param caseDepart
   * @param caseArrivee
   */
  public boolean deplacerReussi(Case caseDepart, Case caseArrivee) {
    ArrayList<Case> plop = new ArrayList<Case>();
    boolean depEffectue = false;

    plop = filtreGeneral(caseDepart);

    for (int i = 0; i < plop.size(); i++) {

      if (plop.get(i).getPosition().equals(caseArrivee.getPosition())) {
        Case sauvegardeArrivee =
            new Case(
                new Position(
                    caseArrivee.getPosition().getHauteur(),
                    caseArrivee.getPosition().getLargeur()));

        Piece p = changerCase(caseDepart, caseArrivee);
        sauvegardeArrivee.setPiece(p);

        for (int j = 0; j < listePieceEnJeu.size(); j++) // pour toutes les pieces en jeu
        if (this.listePieceEnJeu.get(j).getPosition().equals(caseDepart.getPosition())) {
            this.listePieceEnJeu
                .get(j)
                .setPosition(
                    new Position(
                        sauvegardeArrivee.getPosition().getHauteur(),
                        sauvegardeArrivee.getPosition().getLargeur())); // on met a jour la position
          }
        if (caseArrivee.getPiece().getClass().getSimpleName().equals("Roi")) {

          if (caseArrivee.getPiece().getCamp().equals("noir")) {

            this.caseRoiNoir.setPosition(sauvegardeArrivee.getPosition());
          } else {

            this.caseRoiBlanc.setPosition(sauvegardeArrivee.getPosition());
          }
        }
        int res = echec();
        if (res == 11 && campActif.equals("noir")) {

          changerCase(caseArrivee, caseDepart);
          for (int j = 0; j < listePieceEnJeu.size(); j++) // pour toutes les pieces en jeu
          if (this.listePieceEnJeu
                .get(j)
                .getPosition()
                .equals(
                    new Position(
                        sauvegardeArrivee.getPosition().getHauteur(),
                        sauvegardeArrivee.getPosition().getLargeur()))) {
              this.listePieceEnJeu
                  .get(j)
                  .setPosition(caseDepart.getPosition()); // on met a jour la position
            }
          if (caseDepart.getPiece().getClass().getSimpleName().equals("Roi")) {

            if (caseDepart.getPiece().getCamp().equals("noir")) {

              this.caseRoiNoir.setPosition(caseDepart.getPosition());
            } else {

              this.caseRoiBlanc.setPosition(caseDepart.getPosition());
            }
          }

        } else if (res == 12 && campActif.equals("blanc")) {

          changerCase(caseArrivee, caseDepart);
          for (int j = 0; j < listePieceEnJeu.size(); j++) // pour toutes les pieces en jeu
          if (this.listePieceEnJeu
                .get(j)
                .getPosition()
                .equals(
                    new Position(
                        sauvegardeArrivee.getPosition().getHauteur(),
                        sauvegardeArrivee.getPosition().getLargeur()))) {
              this.listePieceEnJeu
                  .get(j)
                  .setPosition(caseDepart.getPosition()); // on met a jour la position
            }
        } else {
          validerDeplacement(caseDepart.getPosition(), caseArrivee, sauvegardeArrivee);
          depEffectue = true;
        }
      }
    }

    return depEffectue;
  }