/** * méthode qui place automatiquement les pions du joueurs. * * @param joueur * @param isAnIA */ public void dude(boolean joueur, boolean isAnIA) { ArrayList<Pion> listPion = initializePions(joueur, isAnIA); if (joueur) { reverse(map.getMap()); } for (int i = 0; i < 4; i++) { for (int j = 0; j < 10; j++) { removePion(i, j); } } setDrapeau(listPion); setEclaireur(listPion); setBombe(listPion); setEspionAndMarechal(listPion); setDemineur(listPion); setSergent(listPion); setLieutenant(listPion); setOthersPions(listPion); if (joueur) { reverse(map.getMap()); } }
/** * place les bombes comme si elle protegeait le drapeau, sauf qu'elle protège un sergent. * * @param listPion */ protected void setBombe(ArrayList<Pion> listPion) { int t; Random r = new Random(); t = r.nextInt(20); if (isNothingOnCase(t / 10 + 1, t % 10) && isNothingOnCase(t / 10, t % 10 - 1) && isNothingOnCase(t / 10, t % 10 + 1)) { map.setEtat(t / 10 + 1, t % 10, getPion(listPion, "bombe")); if (t % 10 < 5) { // Si la case designé par t est plus à gauche, je commence par mettre à droite map.setEtat(t / 10, t % 10 + 1, getPion(listPion, "bombe")); if (isNothingOnCase(t / 10, t % 10 - 1)) map.setEtat(t / 10, t % 10 - 1, getPion(listPion, "bombe")); } else { // Si la case designé par t est plus à droite, je commence par mettre à gauche map.setEtat(t / 10, t % 10 - 1, getPion(listPion, "bombe")); if (isNothingOnCase(t / 10, t % 10 + 1)) map.setEtat(t / 10, t % 10 + 1, getPion(listPion, "bombe")); } if (isNothingOnCase(t / 10, t % 10)) map.setEtat(t / 10, t % 10, getPion(listPion, "sergent")); } else setBombe(listPion); Pion temp = getPion(listPion, "bombe"); while (temp != null) { t = r.nextInt(40); if (isNothingOnCase(t / 10, t % 10)) { map.setEtat(t / 10, t % 10, temp); temp = getPion(listPion, "bombe"); } } }