From c2b1330efaa7b0c648c08a1a9f29a9573a17f929 Mon Sep 17 00:00:00 2001 From: gabriel mille <gabriel.mille.etu@univ-lille.fr> Date: Thu, 5 Sep 2024 11:17:47 +0200 Subject: [PATCH] correction input --- src/main/java/bitFight/Input.java | 15 +++++---------- src/main/java/bitFight/Main.java | 25 +++++++------------------ 2 files changed, 12 insertions(+), 28 deletions(-) diff --git a/src/main/java/bitFight/Input.java b/src/main/java/bitFight/Input.java index df4b2d4..0b7ce5c 100644 --- a/src/main/java/bitFight/Input.java +++ b/src/main/java/bitFight/Input.java @@ -5,10 +5,13 @@ import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; +import java.util.Scanner; public class Input { private String input = ""; private ArrayList<String> inputRange; + private static BufferedReader in= new BufferedReader( new InputStreamReader(System.in)); + public String getInput() { return input; @@ -27,23 +30,15 @@ public class Input { } - public void newInput() throws IOException { + public void newInput(Scanner in) throws IOException { do { - BufferedReader in= new BufferedReader( new InputStreamReader(System.in)); try { - try { - setInput(in.readLine()); - } catch (IOException e) { - // TODO Auto-generated catch block - System.err.println(e.getMessage() + ": Contact support"); - } + setInput(in.nextLine()); } catch (InvalidInputException e) { Display.newPrintln(e.getMessage()); } catch (Exception e) { System.err.println(e.getMessage()+": Contact support"); - } finally { - // in.close(); } } while (!validInput()); diff --git a/src/main/java/bitFight/Main.java b/src/main/java/bitFight/Main.java index 62817d7..88313bc 100644 --- a/src/main/java/bitFight/Main.java +++ b/src/main/java/bitFight/Main.java @@ -7,6 +7,7 @@ import java.io.InputStreamReader; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.Random; +import java.util.Scanner; class Main { @@ -27,15 +28,7 @@ class Main { level = gamedata.getLevelReached(); } - try { - menu.display(); - } catch (IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (InterruptedException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } + menu.display(); menu.validate(); Display.clearScreen(); @@ -62,7 +55,7 @@ class Main { ArrayList<String> actionNames = new ArrayList<>(); for (Action a : actionList) actionNames.add(a.getName()); - BufferedReader in= new BufferedReader( new InputStreamReader(System.in)); + Scanner in= new Scanner(System.in); Random rand = new Random(); @@ -70,7 +63,7 @@ class Main { level.ennemyShowing(); Input input = new Input(); - input.newInput(); + input.newInput(in); Display.goToDialogBox(); @@ -82,9 +75,8 @@ class Main { LocalDateTime timeBeforeAttack = LocalDateTime.now(); int attackTime = 5 - (int)(5 * rand.nextDouble()); - if (input.getInput().equals("a")) { level.possibleActions(); - input.newInput(); + input.newInput(in); // Boucle tant que le joueur n'a pas taper de nom d'une attaque valide ou tape trop tard ou tape q while ((!actionNames.contains(input.getInput()) || !Attack.attackInTime(timeBeforeAttack, attackTime)) && !input.getInput().equals("q")) { @@ -96,13 +88,13 @@ class Main { level.ennemyFaster(randomEnemyAttack); Display.displayNewHealthBar(); timeBeforeAttack = LocalDateTime.now(); - input.newInput(); + input.newInput(in); } if (!actionNames.contains(input.getInput())){ Display.clearDialogBox(); level.invalidActionChoice(); - input.newInput(); + input.newInput(in); } } @@ -129,8 +121,6 @@ class Main { //Display.clearDialogBox(); - input.newInput(); - if (enemy.isDead()){ level.ennemyDying(); player.revive(); @@ -155,6 +145,5 @@ class Main { in.close(); Save.saveObject("res/gamedata", gamedata); } - } } \ No newline at end of file -- GitLab