Пример #1
0
  // constructeur
  public troll(int numtroll, int tailleEchiquier, Menu menu) {

    try {
      this.menu = menu;
      paRestants = 6;
      System.out.println();
      idTroll = numtroll;
      System.out.print("Nom du troll " + numtroll + ": ");
      nomTroll = IO.lireChaine();
      int points = 40;
      // System.out.println("Vous allez maitenant definir les carac de votre troll (attaque, degats,
      // esquive, vie)");
      boolean ok = false;
      while (ok == false) {
        System.out.println();
        System.out.print(
            "Nombre de D3 d'attaque (Il reste " + points + " a repartir dans 4 carac) : ");
        att = IO.lireEntier();
        if (att > points - 3) {
          System.out.println("Impossible de mettre autant de points dans 1 seule carac !!");
        } else {
          points = points - att;
          ok = true;
        }
      }
      ok = false;
      while (ok == false) {
        System.out.println();
        System.out.print(
            "Nombre de D3 de degats (Il reste " + points + " a repartir dans 3 carac) : ");
        deg = IO.lireEntier();
        if (deg > points - 2) {
          System.out.println("Impossible de mettre autant de points dans 1 seule carac !!");
        } else {
          points = points - deg;
          ok = true;
        }
      }
      ok = false;
      while (ok == false) {
        System.out.println();
        System.out.print(
            "Nombre de D3 d'esquive (Il reste " + points + " a repartir dans 2 carac) : ");
        esq = IO.lireEntier();
        if (esq > points - 1) {
          System.out.println("Impossible de mettre autant de points dans 1 seule carac !!");
        } else {
          points = points - esq;
          ok = true;
        }
      }
      System.out.println();
      System.out.println("Points de vie : " + points + "*" + "10 = " + points * 10);
      vie = points * 10;
      positionX = (int) Math.floor(Math.random() * (tailleEchiquier)) + 1;
      positionY = (int) Math.floor(Math.random() * (tailleEchiquier)) + 1;
      System.out.println("Il apparaitra en X=" + positionX + " Y=" + positionY);
      stmt.executeUpdate("delete from troll where idTroll=" + idTroll);
      proc = conn.prepareCall("{call init_troll(?,?,?,?,?,?,?,?)}");
      proc.setInt(1, numtroll);
      proc.setString(2, nomTroll);
      proc.setInt(3, att);
      proc.setInt(4, deg);
      proc.setInt(5, esq);
      proc.setInt(6, vie);
      proc.setInt(7, positionX);
      proc.setInt(8, positionY);
      proc.executeUpdate();
      proc.close();
    } catch (SQLException E) {
      System.err.println("SQLException: " + E.getMessage());
      System.err.println("SQLState:     " + E.getSQLState());
    }
    valeur = "" + nomTroll.charAt(0);
  }
Пример #2
0
  public void deplacer(int tailleEchiquier) {

    boolean coordOk = false;
    System.out.println("Position actuelle : X=" + positionX + " | Y=" + positionY);
    System.out.println("Nouvelle position :");
    while (coordOk == false) {
      if (positionX - 1 < 1) {
        System.out.print("X [1 - " + (positionX + 1) + " ] = ");
      } else if (positionX + 1 > tailleEchiquier) {
        System.out.print("X [" + (positionX - 1) + " - " + (tailleEchiquier) + " ] = ");
      } else {
        System.out.print("X [" + (positionX - 1) + " - " + (positionX + 1) + " ] = ");
      }
      int nouvPositionX = IO.lireEntier();
      if (nouvPositionX < 1) {
        System.out.println("Impossible : coordonnee X < 1 !");
      } else if (nouvPositionX > tailleEchiquier) {
        System.out.println("Impossible : coordonnee X > " + tailleEchiquier + " !");
      } else if (nouvPositionX == positionX + 1
          || nouvPositionX == positionX - 1
          || nouvPositionX == positionX) {
        coordOk = true;
        positionX = nouvPositionX;
      } else {
        System.out.println("Impossible : Le déplacement est limité à 1 case");
      }
    }
    coordOk = false;
    while (coordOk == false) {
      if (positionY - 1 < 1) {
        System.out.print("Y [1 - " + (positionY + 1) + " ] = ");
      } else if (positionY + 1 > tailleEchiquier) {
        System.out.print("Y [" + (positionY - 1) + " - " + (tailleEchiquier) + " ] = ");
      } else {
        System.out.print("Y [" + (positionY - 1) + " - " + (positionY + 1) + " ] = ");
      }
      int nouvPositionY = IO.lireEntier();
      if (nouvPositionY < 1) {
        System.out.println("Impossible : coordonnee Y < 1 !");
      } else if (nouvPositionY > tailleEchiquier) {
        System.out.println("Impossible : coordonnee Y > " + tailleEchiquier + " !");
      } else if (nouvPositionY == positionY + 1
          || nouvPositionY == positionY - 1
          || nouvPositionY == positionY) {
        coordOk = true;
        positionY = nouvPositionY;
      } else {
        System.out.println("Impossible : Le déplacement est limité à 1 case");
      }
    }
    try {
      ResultSet rset =
          stmt.executeQuery(
              "select count (*) from objet where positionX = "
                  + this.positionX
                  + " and positionY="
                  + this.positionY);
      rset.first();
      int nbObjet = rset.getInt(1);
      if (nbObjet > 0) {
        System.out.println();
        System.out.println("Vous marchez sur quelque chose...");
      }
      proc = conn.prepareCall("{? = call deplacer_troll(?,?,?)}");
      proc.registerOutParameter(1, Types.VARCHAR);
      proc.setInt(2, idTroll);
      proc.setInt(3, positionX);
      proc.setInt(4, positionY);
      proc.executeUpdate();
      String mess = proc.getString(1);
      proc.close();

      proc = conn.prepareCall("{? = call pa_restants(?)}");
      proc.registerOutParameter(1, Types.INTEGER);
      proc.setInt(2, idTroll);
      proc.executeUpdate();
      paRestants = proc.getInt(1);
      proc.close();
      if (mess != null) {
        System.out.println(mess);
      }
    } catch (SQLException E) {
      System.err.println("SQLException: " + E.getMessage());
      System.err.println("SQLState:     " + E.getSQLState());
    }
  }