public void ramasserObjet() { boolean vide = true; try { ResultSet rset = stmt.executeQuery( "select idObjet from objet where positionX=" + positionX + " and positionY=" + positionY); Hashtable<String, String> tabObj = new Hashtable<String, String>(); while (rset.next()) { vide = false; String idObj = rset.getString("idObjet"); System.out.println(idObj); tabObj.put(idObj, idObj); } rset.close(); if (!vide) { System.out.println("Quel objet voulez vous ramasser ? : "); String obj = IO.lireChaine(); if (tabObj.containsKey(obj)) { proc = conn.prepareCall("{call rammasser(?,?)}"); proc.setInt(1, idTroll); proc.setString(2, obj); proc.executeUpdate(); proc.close(); rset = stmt.executeQuery("select typeObjet from objet where idObjet='" + obj + "'"); rset.first(); String type = rset.getString("typeObjet"); if (type.equals("potion")) { menu.supprimerPopo(obj); } else { menu.supprimerObjet(obj); } rset = stmt.executeQuery("select paRestants from troll where idTroll=" + idTroll); int ancVal = 0; while (rset.next()) { ancVal = rset.getInt("paRestants"); } stmt.executeUpdate( "update troll SET paRestants = " + (ancVal - 1) + " where idTroll=" + idTroll); paRestants = paRestants - 1; } else { System.out.println("Cet objet ne se trouve pas sur votre case !"); } } else { System.out.println("Il n'y a aucun objet sur votre case"); } } catch (SQLException E) { System.err.println("SQLException: " + E.getMessage()); System.err.println("SQLState: " + E.getSQLState()); } }
// 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); }