/** * 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")); } } }
/** * 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; }