/** * place le maréchal et l'espion * * @param listPion */ protected void setEspionAndMarechal(ArrayList<Pion> listPion) { int t; Random r = new Random(); t = r.nextInt(30); if (isNothingOnCase(t / 10, t % 10) && (isNothingOnCase(t / 10 - 1, t % 10) || isNothingOnCase(t / 10, t % 10 - 1) || isNothingOnCase(t / 10, t % 10 + 1))) { map.setEtat(t / 10, t % 10, getPion(listPion, "marechal")); if (isNothingOnCase(t / 10 - 1, t % 10)) map.setEtat(t / 10 - 1, t % 10, getPion(listPion, "espion")); else if (isNothingOnCase(t / 10, t % 10 - 1)) map.setEtat(t / 10, t % 10 - 1, getPion(listPion, "espion")); else map.setEtat(t / 10, t % 10 + 1, getPion(listPion, "espion")); } else setEspionAndMarechal(listPion); }
/** * 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"); } } }
/** * place les eclaireurs * * @param listPion */ protected void setEclaireur(ArrayList<Pion> listPion) { map.setEtat(3, 0, getPion(listPion, "eclaireur")); map.setEtat(3, 1, getPion(listPion, "eclaireur")); map.setEtat(3, 4, getPion(listPion, "eclaireur")); map.setEtat(3, 5, getPion(listPion, "eclaireur")); map.setEtat(3, 8, getPion(listPion, "eclaireur")); map.setEtat(3, 9, getPion(listPion, "eclaireur")); Pion temp = getPion(listPion, "eclaireur"); int t; Random r = new Random(); while (temp != null) { t = r.nextInt(10); if (isNothingOnCase(2, t)) { map.setEtat(2, t, temp); temp = getPion(listPion, "eclaireur"); } } }
/** * place les démineurs * * @param listPion */ protected void setDemineur(ArrayList<Pion> listPion) { int t, i = 0; Random r = new Random(); Pion temp = getPion(listPion, "demineur"); while (i < 3) { t = r.nextInt(20); if (isNothingOnCase(t / 10, t % 10)) { map.setEtat(t / 10, t % 10, temp); temp = getPion(listPion, "demineur"); i++; } } while (temp != null) { t = 20 + r.nextInt(20); if (isNothingOnCase(t / 10, t % 10)) { map.setEtat(t / 10, t % 10, temp); temp = getPion(listPion, "demineur"); } } }
/** * place les autres pions * * @param listPion */ protected void setOthersPions(ArrayList<Pion> listPion) { int t, place; Random r = new Random(); while (listPion.size() != 0) { t = r.nextInt(listPion.size()); place = r.nextInt(40); if (isNothingOnCase(place / 10, place % 10)) { map.setEtat(place / 10, place % 10, listPion.get(t)); listPion.remove(t); } } }
/** * place les lieutenants * * @param listPion */ protected void setLieutenant(ArrayList<Pion> listPion) { int t; Random r = new Random(); Pion temp = getPion(listPion, "lieutenant"); while (temp != null) { t = r.nextInt(40); if (isNothingOnCase(t / 10, t % 10)) { map.setEtat(t / 10, t % 10, temp); temp = getPion(listPion, "lieutenant"); } } }
/** * place le drapeau avec des bombes autour * * @param listPion */ protected void setDrapeau(ArrayList<Pion> listPion) { int t; Random r = new Random(); t = r.nextInt(30); if (t == 20 || t == 21 || t == 24 || t == 25 || t == 28 || t == 29) setDrapeau(listPion); else { map.setEtat(t / 10, t % 10, getPion(listPion, "drapeau")); // une bombe à gauche du drapeau if (isNothingOnCase(t / 10, t % 10 - 1)) map.setEtat(t / 10, t % 10 - 1, getPion(listPion, "bombe")); // une bombe en haut du drapeau if (isNothingOnCase(t / 10 - 1, t % 10)) map.setEtat(t / 10 - 1, t % 10, getPion(listPion, "bombe")); // une bombe à droite du drapeau if (isNothingOnCase(t / 10, t % 10 + 1)) map.setEtat(t / 10, t % 10 + 1, getPion(listPion, "bombe")); // une bombe en bas du drapeau if (isNothingOnCase(t / 10 + 1, t % 10)) map.setEtat(t / 10 + 1, t % 10, getPion(listPion, "bombe")); } }
/** * crée et place un pion sur la carte * * @param pionPath * @param x * @param y * @param joueur */ public void createAndPlacePion(String pionPath, int x, int y, boolean joueur) { Pion pion = getTypePion(pionPath, joueur); map.setEtat(x, y, pion); }
/** * place le pion au coordonné (oldX, oldY) au position (x,y) sur la carte * * @param oldX * @param oldY * @param x * @param y */ public void placePion(int oldX, int oldY, int x, int y) { map.setEtat(x, y, map.getPion(oldX, oldY)); map.setEtat(oldX, oldY, null); }