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