/** Effectue un tirage au sort */
 public void tirageAuSort() {
   int random = (int) (Math.random() * 2);
   if (random == 0) {
     tour = new Tour(joueur1);
   } else {
     tour = new Tour(joueur2);
   }
 }
Exemple #2
0
  public static void creer_match() throws Exception {
    int nbequipe = Tour.getNbEquipe();
    MainWindows.barmatch.setMaximum(nbequipe / 2);
    MainWindows.barmatch.setMinimum(0);
    MainWindows.barmatch.setValue(0);
    int nbterrain = Tournois.getNbTerrain(); // No�
    List<Equipe> liste_equipe = Tour.getListEquipe();

    int nbMatch = nbequipe / 2;
    int nbEquipe = Tour.getNbEquipe();

    for (int i = 1; i <= nbMatch; i++) {
      Equipe e1 = liste_equipe.get((int) (Math.random() * (nbEquipe)));
      Equipe e2 = liste_equipe.get((int) (Math.random() * (nbEquipe)));
      while (e1.getJoue()) {
        e1 = liste_equipe.get((int) (Math.random() * (nbEquipe)));
      }
      while (e2.getJoue() || (e2.equals(e1))) {
        e2 = liste_equipe.get((int) (Math.random() * (nbEquipe)));
      }

      e1.setJoue(true);
      e2.setJoue(true);
      database.insert(
          "insert into match(numtour, terrain, idequipe1, idequipe2, pointequipe1, pointequipe2, matchjoue) values ("
              + Tournois.getNbToursEffectif()
              + ", "
              + (((i - 1) % nbterrain) + 1)
              + ", "
              + e1.getIdEquipe()
              + " , "
              + e2.getIdEquipe()
              + ", 0, 0, 0)");
      new ThreadProgressBar(MainWindows.barmatch, 0).start();
    }
  }
  /**
   * Retourne les cases où l'on peut utiliser l'action pour le personnage selectionné
   *
   * @param idActionSelectionné numéro de l'action selectionné
   * @return les cases où l'on peut utiliser l'action pour le personnage selectionné
   */
  public ArrayList<int[]> VoisinageCaseAction(int idActionSelectionné) {
    boolean[] obstacle = {false, false, false, false};
    ArrayList<int[]> voisinage = new ArrayList<int[]>();
    Class<?> c = personnageSelectionné.getAction(idActionSelectionné);
    int pmMin = 0;
    int pmMax = 0;
    Action.typePortee tp;
    try {
      tp = (typePortee) c.getMethod("getTypePortee").invoke(c);
      pmMin = (Integer) c.getMethod("getPorteeMin").invoke(c);
      if (tp == Action.typePortee.NORMAL) pmMax = (Integer) c.getMethod("getPorteeMax").invoke(c);
      else if (tp == Action.typePortee.CIBLE) pmMax = Math.min(TaillePlateauX, TaillePlateauY) / 2;
      else if (tp == Action.typePortee.SELF) {
        voisinage.add(personnageSelectionné.getPosition());
        return voisinage;
      }
      int x = personnageSelectionné.getPosition()[0];
      int y = personnageSelectionné.getPosition()[1];
      for (int i = 1; i <= pmMax; i++) {
        if (x - i >= 0) {
          int[] positionCaseSelectionné = {x - i, y};
          if (!obstacle[0] && !this.getCase(positionCaseSelectionné).estVide()) {
            obstacle[0] = true;
            if (i >= pmMin) {
              voisinage.add(positionCaseSelectionné);
            }
          } else if (!obstacle[0] && this.getCase(positionCaseSelectionné).estVide()) {
            if (i >= pmMin) {
              voisinage.add(positionCaseSelectionné);
            }
          } else if (personnageSelectionné.getSaitVoler() && obstacle[0]) {
            if (i >= pmMin) {
              voisinage.add(positionCaseSelectionné);
            }
          }
        }

        if (x + i < TaillePlateauX) {
          int[] positionCaseSelectionné = {x + i, y};
          if (!obstacle[1] && !this.getCase(positionCaseSelectionné).estVide()) {
            obstacle[1] = true;
            if (i >= pmMin) {
              voisinage.add(positionCaseSelectionné);
            }
          } else if (!obstacle[1] && this.getCase(positionCaseSelectionné).estVide()) {
            if (i >= pmMin) {
              voisinage.add(positionCaseSelectionné);
            }
          } else if (personnageSelectionné.getSaitVoler() && obstacle[1]) {
            if (i >= pmMin) {
              voisinage.add(positionCaseSelectionné);
            }
          }
        }

        if (y - i >= 0) {
          int[] positionCaseSelectionné = {x, y - i};
          if (!obstacle[2] && !this.getCase(positionCaseSelectionné).estVide()) {
            obstacle[2] = true;
            if (i >= pmMin) {
              voisinage.add(positionCaseSelectionné);
            }
          } else if (!obstacle[2] && this.getCase(positionCaseSelectionné).estVide()) {
            if (i >= pmMin) {
              voisinage.add(positionCaseSelectionné);
            }
          } else if (personnageSelectionné.getSaitVoler() && obstacle[2]) {
            if (i >= pmMin) {
              voisinage.add(positionCaseSelectionné);
            }
          }
        }

        if (y + i < TaillePlateauY) {
          int[] positionCaseSelectionné = {x, y + i};
          if (!obstacle[3] && !this.getCase(positionCaseSelectionné).estVide()) {
            obstacle[3] = true;
            if (i >= pmMin) {
              voisinage.add(positionCaseSelectionné);
            }
          } else if (!obstacle[3] && this.getCase(positionCaseSelectionné).estVide()) {
            if (i >= pmMin) {
              voisinage.add(positionCaseSelectionné);
            }
          } else if (personnageSelectionné.getSaitVoler() && obstacle[3]) {
            if (i >= pmMin) {
              voisinage.add(positionCaseSelectionné);
            }
          }
        }
      }
    } catch (Exception e) {
    }
    return voisinage;
  }