diff --git a/code/src/controller/GamePlayController.java b/code/src/controller/GamePlayController.java index 781eb09..18df2ff 100644 --- a/code/src/controller/GamePlayController.java +++ b/code/src/controller/GamePlayController.java @@ -11,9 +11,11 @@ import javafx.scene.image.WritableImage; import javafx.scene.layout.AnchorPane; import javafx.scene.layout.GridPane; import javafx.scene.paint.Color; +import javafx.scene.text.Text; import javafx.util.Duration; import model.Case; import model.GameLoop; +import model.GameTime; import model.Map; import java.io.IOException; @@ -39,6 +41,10 @@ public class GamePlayController implements Initializable { String pathPerso; int i, diceNumber; Thread personnage; + boolean finJeu = false; + GameTime gameTime; + GameLoop loop; + Text textEnd; public int difficulty; public int perso; @@ -52,10 +58,37 @@ public class GamePlayController implements Initializable { levelRoot.getChildren().addAll(mapController.mapInitialisation(this.difficulty), persoController.playerInitialisation(this.difficulty,this.perso, mapController.getMap()), creatureImageView); persoController.setActualCase(mapController.getStartCase()); playerImagePerso.setImage(new Image("image/personnage/Perso" + this.perso + ".2.png")); - GameLoop loop = new GameLoop(this.difficulty, mapController.getMap(), creatureImageView); + loop = new GameLoop(this.difficulty, mapController.getMap(), creatureImageView); loop.start(); + Text text = new Text(); + text.setText("Time : "); + text.setX(1000); + text.setY(50); + text.setFill(Color.WHITE); + text.setStyle("-fx-font: 20 arial;"); + Text textTimer = new Text(); + textTimer.setText(""); + textTimer.setX(1070); + textTimer.setY(50); + textTimer.setFill(Color.WHITE); + textTimer.setStyle("-fx-font: 20 arial;"); + textEnd = new Text(); + textEnd.setText(""); + textEnd.setX(500); + textEnd.setY(500); + textEnd.setFill(Color.WHITE); + textEnd.setStyle("-fx-font: 100 arial;"); + levelRoot.getChildren().addAll(text,textTimer,textEnd); + gameTime = new GameTime(textTimer); + gameTime.start(); } + public void timer(){ + if(finJeu){ + gameTime.stop(); + loop.stop(); + } + } public void movePlayerNextCase() throws InterruptedException { persoImageView = persoController.persoImageView; @@ -79,163 +112,171 @@ public class GamePlayController implements Initializable { int time6 = 600; int time7 = 700; int time8 = 800; - - //animation déplacement vers la droite - if(caseActuelle.getCoordX() > caseAncienne.getCoordX()){ - System.out.println(pathPerso + "7.png"); - Image imagePerso7 = new Image(Objects.requireNonNull(getClass().getClassLoader().getResource(pathPerso + "7.png")).toExternalForm()); - Image imagePerso8 = new Image(Objects.requireNonNull(getClass().getClassLoader().getResource(pathPerso + "8.png")).toExternalForm()); - Image imagePerso9 = new Image(Objects.requireNonNull(getClass().getClassLoader().getResource(pathPerso + "9.png")).toExternalForm()); - timeline.getKeyFrames().add(new KeyFrame(Duration.millis(time1), event -> { - persoImageView.setImage(imagePerso8); - persoImageView.setLayoutX(persoImageView.getLayoutX()+avancementCase); - })); - timeline.getKeyFrames().add(new KeyFrame(Duration.millis(time2), event -> { - persoImageView.setImage(imagePerso7); - persoImageView.setLayoutX(persoImageView.getLayoutX()+avancementCase); - })); - timeline.getKeyFrames().add(new KeyFrame(Duration.millis(time3), event -> { - persoImageView.setImage(imagePerso9); - persoImageView.setLayoutX(persoImageView.getLayoutX()+avancementCase); - })); - timeline.getKeyFrames().add(new KeyFrame(Duration.millis(time4), event -> { - persoImageView.setImage(imagePerso7); - persoImageView.setLayoutX(persoImageView.getLayoutX()+avancementCase); - })); - timeline.getKeyFrames().add(new KeyFrame(Duration.millis(time5), event -> { - persoImageView.setImage(imagePerso9); - persoImageView.setLayoutX(persoImageView.getLayoutX()+avancementCase); - })); - timeline.getKeyFrames().add(new KeyFrame(Duration.millis(time6), event -> { - persoImageView.setImage(imagePerso7); - persoImageView.setLayoutX(persoImageView.getLayoutX()+avancementCase); - })); - timeline.getKeyFrames().add(new KeyFrame(Duration.millis(time7), event -> { - persoImageView.setImage(imagePerso9); - persoImageView.setLayoutX(persoImageView.getLayoutX()+avancementCase); - })); - timeline.getKeyFrames().add(new KeyFrame(Duration.millis(time8), event -> { - persoImageView.setImage(imagePerso8); - persoImageView.setLayoutX(persoImageView.getLayoutX()+avancementCase); - })); - timeline.play(); - } - //animation déplacement vers la gauche - if(caseActuelle.getCoordX() < caseAncienne.getCoordX()){ - Image imagePerso4 = new Image(getClass().getClassLoader().getResource(pathPerso+"4.png").toExternalForm()); - Image imagePerso5 = new Image(getClass().getClassLoader().getResource(pathPerso+"5.png").toExternalForm()); - Image imagePerso6 = new Image(getClass().getClassLoader().getResource(pathPerso+"6.png").toExternalForm()); - timeline.getKeyFrames().add(new KeyFrame(Duration.millis(time1), event -> { - persoImageView.setImage(imagePerso5); - persoImageView.setLayoutX(persoImageView.getLayoutX()-avancementCase); - })); - timeline.getKeyFrames().add(new KeyFrame(Duration.millis(time2), event -> { - persoImageView.setImage(imagePerso4); - persoImageView.setLayoutX(persoImageView.getLayoutX()-avancementCase); - })); - timeline.getKeyFrames().add(new KeyFrame(Duration.millis(time3), event -> { - persoImageView.setImage(imagePerso6); - persoImageView.setLayoutX(persoImageView.getLayoutX()-avancementCase); - })); - timeline.getKeyFrames().add(new KeyFrame(Duration.millis(time4), event -> { - persoImageView.setImage(imagePerso4); - persoImageView.setLayoutX(persoImageView.getLayoutX()-avancementCase); - })); - timeline.getKeyFrames().add(new KeyFrame(Duration.millis(time5), event -> { - persoImageView.setImage(imagePerso6); - persoImageView.setLayoutX(persoImageView.getLayoutX()-avancementCase); - })); - timeline.getKeyFrames().add(new KeyFrame(Duration.millis(time6), event -> { - persoImageView.setImage(imagePerso4); - persoImageView.setLayoutX(persoImageView.getLayoutX()-avancementCase); - })); - timeline.getKeyFrames().add(new KeyFrame(Duration.millis(time7), event -> { - persoImageView.setImage(imagePerso6); - persoImageView.setLayoutX(persoImageView.getLayoutX()-avancementCase); - })); - timeline.getKeyFrames().add(new KeyFrame(Duration.millis(time8), event -> { - persoImageView.setImage(imagePerso5); - persoImageView.setLayoutX(persoImageView.getLayoutX()-avancementCase); - })); - timeline.play(); - } - //animation déplacement vers le haut - if(caseActuelle.getCoordY() < caseAncienne.getCoordY()){ - Image imagePerso10 = new Image(getClass().getClassLoader().getResource(pathPerso+"10.png").toExternalForm()); - Image imagePerso11 = new Image(getClass().getClassLoader().getResource(pathPerso+"11.png").toExternalForm()); - Image imagePerso12 = new Image(getClass().getClassLoader().getResource(pathPerso+"12.png").toExternalForm()); - timeline.getKeyFrames().add(new KeyFrame(Duration.millis(time1), event -> { - persoImageView.setImage(imagePerso11); - persoImageView.setLayoutY(persoImageView.getLayoutY()-avancementCase); - })); - timeline.getKeyFrames().add(new KeyFrame(Duration.millis(time2), event -> { - persoImageView.setImage(imagePerso10); - persoImageView.setLayoutY(persoImageView.getLayoutY()-avancementCase); - })); - timeline.getKeyFrames().add(new KeyFrame(Duration.millis(time3), event -> { - persoImageView.setImage(imagePerso12); - persoImageView.setLayoutY(persoImageView.getLayoutY()-avancementCase); - })); - timeline.getKeyFrames().add(new KeyFrame(Duration.millis(time4), event -> { - persoImageView.setImage(imagePerso10); - persoImageView.setLayoutY(persoImageView.getLayoutY()-avancementCase); - })); - timeline.getKeyFrames().add(new KeyFrame(Duration.millis(time5), event -> { - persoImageView.setImage(imagePerso12); - persoImageView.setLayoutY(persoImageView.getLayoutY()-avancementCase); - })); - timeline.getKeyFrames().add(new KeyFrame(Duration.millis(time6), event -> { - persoImageView.setImage(imagePerso10); - persoImageView.setLayoutY(persoImageView.getLayoutY()-avancementCase); - })); - timeline.getKeyFrames().add(new KeyFrame(Duration.millis(time7), event -> { - persoImageView.setImage(imagePerso12); - persoImageView.setLayoutY(persoImageView.getLayoutY()-avancementCase); - })); - timeline.getKeyFrames().add(new KeyFrame(Duration.millis(time8), event -> { - persoImageView.setImage(imagePerso11); - persoImageView.setLayoutY(persoImageView.getLayoutY()-avancementCase); - })); - timeline.play(); - } - //animation déplacement vers le bas - if(caseActuelle.getCoordY() > caseAncienne.getCoordY()){ - Image imagePerso1 = new Image(getClass().getClassLoader().getResource(pathPerso+"1.png").toExternalForm()); - Image imagePerso2 = new Image(getClass().getClassLoader().getResource(pathPerso+"2.png").toExternalForm()); - Image imagePerso3 = new Image(getClass().getClassLoader().getResource(pathPerso+"3.png").toExternalForm()); - timeline.getKeyFrames().add(new KeyFrame(Duration.millis(time1), event -> { - persoImageView.setImage(imagePerso2); - persoImageView.setLayoutY(persoImageView.getLayoutY()+avancementCase); - })); - timeline.getKeyFrames().add(new KeyFrame(Duration.millis(time2), event -> { - persoImageView.setImage(imagePerso1); - persoImageView.setLayoutY(persoImageView.getLayoutY()+avancementCase); - })); - timeline.getKeyFrames().add(new KeyFrame(Duration.millis(time3), event -> { - persoImageView.setImage(imagePerso3); - persoImageView.setLayoutY(persoImageView.getLayoutY()+avancementCase); - })); - timeline.getKeyFrames().add(new KeyFrame(Duration.millis(time4), event -> { - persoImageView.setImage(imagePerso1); - persoImageView.setLayoutY(persoImageView.getLayoutY()+avancementCase); - })); - timeline.getKeyFrames().add(new KeyFrame(Duration.millis(time5), event -> { - persoImageView.setImage(imagePerso3); - persoImageView.setLayoutY(persoImageView.getLayoutY()+avancementCase); - })); - timeline.getKeyFrames().add(new KeyFrame(Duration.millis(time6), event -> { - persoImageView.setImage(imagePerso1); - persoImageView.setLayoutY(persoImageView.getLayoutY()+avancementCase); - })); - timeline.getKeyFrames().add(new KeyFrame(Duration.millis(800), event -> { - persoImageView.setImage(imagePerso3); - persoImageView.setLayoutY(persoImageView.getLayoutY()+avancementCase); - })); - timeline.getKeyFrames().add(new KeyFrame(Duration.millis(900), event -> { - persoImageView.setImage(imagePerso2); - persoImageView.setLayoutY(persoImageView.getLayoutY()+avancementCase); - })); - timeline.play(); + if(caseActuelle != null){ + //animation déplacement vers la droite + if (caseActuelle.getCoordX() > caseAncienne.getCoordX()) { + System.out.println(pathPerso + "7.png"); + Image imagePerso7 = new Image(Objects.requireNonNull(getClass().getClassLoader().getResource(pathPerso + "7.png")).toExternalForm()); + Image imagePerso8 = new Image(Objects.requireNonNull(getClass().getClassLoader().getResource(pathPerso + "8.png")).toExternalForm()); + Image imagePerso9 = new Image(Objects.requireNonNull(getClass().getClassLoader().getResource(pathPerso + "9.png")).toExternalForm()); + timeline.getKeyFrames().add(new KeyFrame(Duration.millis(time1), event -> { + persoImageView.setImage(imagePerso8); + persoImageView.setLayoutX(persoImageView.getLayoutX() + avancementCase); + })); + timeline.getKeyFrames().add(new KeyFrame(Duration.millis(time2), event -> { + persoImageView.setImage(imagePerso7); + persoImageView.setLayoutX(persoImageView.getLayoutX() + avancementCase); + })); + timeline.getKeyFrames().add(new KeyFrame(Duration.millis(time3), event -> { + persoImageView.setImage(imagePerso9); + persoImageView.setLayoutX(persoImageView.getLayoutX() + avancementCase); + })); + timeline.getKeyFrames().add(new KeyFrame(Duration.millis(time4), event -> { + persoImageView.setImage(imagePerso7); + persoImageView.setLayoutX(persoImageView.getLayoutX() + avancementCase); + })); + timeline.getKeyFrames().add(new KeyFrame(Duration.millis(time5), event -> { + persoImageView.setImage(imagePerso9); + persoImageView.setLayoutX(persoImageView.getLayoutX() + avancementCase); + })); + timeline.getKeyFrames().add(new KeyFrame(Duration.millis(time6), event -> { + persoImageView.setImage(imagePerso7); + persoImageView.setLayoutX(persoImageView.getLayoutX() + avancementCase); + })); + timeline.getKeyFrames().add(new KeyFrame(Duration.millis(time7), event -> { + persoImageView.setImage(imagePerso9); + persoImageView.setLayoutX(persoImageView.getLayoutX() + avancementCase); + })); + timeline.getKeyFrames().add(new KeyFrame(Duration.millis(time8), event -> { + persoImageView.setImage(imagePerso8); + persoImageView.setLayoutX(persoImageView.getLayoutX() + avancementCase); + })); + timeline.play(); + } + //animation déplacement vers la gauche + if (caseActuelle.getCoordX() < caseAncienne.getCoordX()) { + Image imagePerso4 = new Image(getClass().getClassLoader().getResource(pathPerso + "4.png").toExternalForm()); + Image imagePerso5 = new Image(getClass().getClassLoader().getResource(pathPerso + "5.png").toExternalForm()); + Image imagePerso6 = new Image(getClass().getClassLoader().getResource(pathPerso + "6.png").toExternalForm()); + timeline.getKeyFrames().add(new KeyFrame(Duration.millis(time1), event -> { + persoImageView.setImage(imagePerso5); + persoImageView.setLayoutX(persoImageView.getLayoutX() - avancementCase); + })); + timeline.getKeyFrames().add(new KeyFrame(Duration.millis(time2), event -> { + persoImageView.setImage(imagePerso4); + persoImageView.setLayoutX(persoImageView.getLayoutX() - avancementCase); + })); + timeline.getKeyFrames().add(new KeyFrame(Duration.millis(time3), event -> { + persoImageView.setImage(imagePerso6); + persoImageView.setLayoutX(persoImageView.getLayoutX() - avancementCase); + })); + timeline.getKeyFrames().add(new KeyFrame(Duration.millis(time4), event -> { + persoImageView.setImage(imagePerso4); + persoImageView.setLayoutX(persoImageView.getLayoutX() - avancementCase); + })); + timeline.getKeyFrames().add(new KeyFrame(Duration.millis(time5), event -> { + persoImageView.setImage(imagePerso6); + persoImageView.setLayoutX(persoImageView.getLayoutX() - avancementCase); + })); + timeline.getKeyFrames().add(new KeyFrame(Duration.millis(time6), event -> { + persoImageView.setImage(imagePerso4); + persoImageView.setLayoutX(persoImageView.getLayoutX() - avancementCase); + })); + timeline.getKeyFrames().add(new KeyFrame(Duration.millis(time7), event -> { + persoImageView.setImage(imagePerso6); + persoImageView.setLayoutX(persoImageView.getLayoutX() - avancementCase); + })); + timeline.getKeyFrames().add(new KeyFrame(Duration.millis(time8), event -> { + persoImageView.setImage(imagePerso5); + persoImageView.setLayoutX(persoImageView.getLayoutX() - avancementCase); + })); + timeline.play(); + } + //animation déplacement vers le haut + if (caseActuelle.getCoordY() < caseAncienne.getCoordY()) { + Image imagePerso10 = new Image(getClass().getClassLoader().getResource(pathPerso + "10.png").toExternalForm()); + Image imagePerso11 = new Image(getClass().getClassLoader().getResource(pathPerso + "11.png").toExternalForm()); + Image imagePerso12 = new Image(getClass().getClassLoader().getResource(pathPerso + "12.png").toExternalForm()); + timeline.getKeyFrames().add(new KeyFrame(Duration.millis(time1), event -> { + persoImageView.setImage(imagePerso11); + persoImageView.setLayoutY(persoImageView.getLayoutY() - avancementCase); + })); + timeline.getKeyFrames().add(new KeyFrame(Duration.millis(time2), event -> { + persoImageView.setImage(imagePerso10); + persoImageView.setLayoutY(persoImageView.getLayoutY() - avancementCase); + })); + timeline.getKeyFrames().add(new KeyFrame(Duration.millis(time3), event -> { + persoImageView.setImage(imagePerso12); + persoImageView.setLayoutY(persoImageView.getLayoutY() - avancementCase); + })); + timeline.getKeyFrames().add(new KeyFrame(Duration.millis(time4), event -> { + persoImageView.setImage(imagePerso10); + persoImageView.setLayoutY(persoImageView.getLayoutY() - avancementCase); + })); + timeline.getKeyFrames().add(new KeyFrame(Duration.millis(time5), event -> { + persoImageView.setImage(imagePerso12); + persoImageView.setLayoutY(persoImageView.getLayoutY() - avancementCase); + })); + timeline.getKeyFrames().add(new KeyFrame(Duration.millis(time6), event -> { + persoImageView.setImage(imagePerso10); + persoImageView.setLayoutY(persoImageView.getLayoutY() - avancementCase); + })); + timeline.getKeyFrames().add(new KeyFrame(Duration.millis(time7), event -> { + persoImageView.setImage(imagePerso12); + persoImageView.setLayoutY(persoImageView.getLayoutY() - avancementCase); + })); + timeline.getKeyFrames().add(new KeyFrame(Duration.millis(time8), event -> { + persoImageView.setImage(imagePerso11); + persoImageView.setLayoutY(persoImageView.getLayoutY() - avancementCase); + })); + timeline.play(); + } + //animation déplacement vers le bas + if (caseActuelle.getCoordY() > caseAncienne.getCoordY()) { + Image imagePerso1 = new Image(getClass().getClassLoader().getResource(pathPerso + "1.png").toExternalForm()); + Image imagePerso2 = new Image(getClass().getClassLoader().getResource(pathPerso + "2.png").toExternalForm()); + Image imagePerso3 = new Image(getClass().getClassLoader().getResource(pathPerso + "3.png").toExternalForm()); + timeline.getKeyFrames().add(new KeyFrame(Duration.millis(time1), event -> { + persoImageView.setImage(imagePerso2); + persoImageView.setLayoutY(persoImageView.getLayoutY() + avancementCase); + })); + timeline.getKeyFrames().add(new KeyFrame(Duration.millis(time2), event -> { + persoImageView.setImage(imagePerso1); + persoImageView.setLayoutY(persoImageView.getLayoutY() + avancementCase); + })); + timeline.getKeyFrames().add(new KeyFrame(Duration.millis(time3), event -> { + persoImageView.setImage(imagePerso3); + persoImageView.setLayoutY(persoImageView.getLayoutY() + avancementCase); + })); + timeline.getKeyFrames().add(new KeyFrame(Duration.millis(time4), event -> { + persoImageView.setImage(imagePerso1); + persoImageView.setLayoutY(persoImageView.getLayoutY() + avancementCase); + })); + timeline.getKeyFrames().add(new KeyFrame(Duration.millis(time5), event -> { + persoImageView.setImage(imagePerso3); + persoImageView.setLayoutY(persoImageView.getLayoutY() + avancementCase); + })); + timeline.getKeyFrames().add(new KeyFrame(Duration.millis(time6), event -> { + persoImageView.setImage(imagePerso1); + persoImageView.setLayoutY(persoImageView.getLayoutY() + avancementCase); + })); + timeline.getKeyFrames().add(new KeyFrame(Duration.millis(800), event -> { + persoImageView.setImage(imagePerso3); + persoImageView.setLayoutY(persoImageView.getLayoutY() + avancementCase); + })); + timeline.getKeyFrames().add(new KeyFrame(Duration.millis(900), event -> { + persoImageView.setImage(imagePerso2); + persoImageView.setLayoutY(persoImageView.getLayoutY() + avancementCase); + })); + timeline.play(); + } + if(caseActuelle.isEnd() == true){ + textEnd.setText("Fin"); + } + }else{ + System.out.println("Fin du jeu"); + finJeu = true; + timer(); } } diff --git a/code/src/controller/MapController.java b/code/src/controller/MapController.java index 38bcc48..c5cae77 100644 --- a/code/src/controller/MapController.java +++ b/code/src/controller/MapController.java @@ -37,6 +37,7 @@ public class MapController implements Initializable { private final Image x = new Image("/image/terrain/multiarbre1.png"); private final Image y = new Image("/image/terrain/multiarbre2.png"); private final Image z = new Image("/image/terrain/star.png"); + private Case case1; @Override @@ -47,12 +48,17 @@ public class MapController implements Initializable { public void createMap(int difficulty) { int[][] coordFirstDifficultyMap = {{0,24},{1,24},{2,24},{3,24},{4,24},{5,24},{5,23},{5,22},{5,21},{5,20},{5,19},{5,18},{6,18},{7,18},{8,18},{9,18},{10,18},{11,18},{12,18},{12,17},{12,16},{12,15},{12,14},{12,13},{12,12},{11,12},{10,12},{9,12},{8,12},{7,12},{6,12},{5,12},{4,12},{3,12},{3,11},{3,10},{3,9},{3,8},{3,7},{3,6},{3,5},{3,4},{3,3},{4,3},{5,3},{6,3},{7,3},{8,3},{9,3},{10,3},{11,3},{12,3},{13,3},{14,3},{15,3},{16,3},{17,3},{18,3},{19,3},{19,4},{19,5},{19,6},{19,7},{19,8},{19,9},{19,10},{20,10},{21,10},{22,10},{23,10},{24,10},{24,11},{24,12},{24,13},{24,14},{24,15},{24,16},{24,17},{24,18},{24,19},{24,20},{24,21},{24,22},{24,23},{24,24},{25,24},{26,24},{27,24},{28,24},{29,24}}; + //int[][] coordFirstDifficultyMap = {{0,24},{1,24},{2,24},{3,24},{4,24},{5,24},{5,23},{5,22},{5,21},{5,20}}; if (difficulty == 1) { int j = 1; for(int[] i : coordFirstDifficultyMap){ boolean bool = j == 1; System.out.println("Taille case :" +coordFirstDifficultyMap.length); - Case case1 = new Case(j, i[0], i [1], bool, false, map); + if(j == coordFirstDifficultyMap.length){ + case1 = new Case(j, i[0], i [1], bool, true, map); + }else{ + case1 = new Case(j, i[0], i [1], bool, false, map); + } map.addCase(case1); j++; } diff --git a/code/src/model/GameLoop.java b/code/src/model/GameLoop.java index 589a5e4..13aa383 100644 --- a/code/src/model/GameLoop.java +++ b/code/src/model/GameLoop.java @@ -57,4 +57,10 @@ public class GameLoop { }; timer.start(); } + + public void stop() { + System.out.println("GameLoop.stop()"); + timer.stop(); + timer.interrupt(); + } } diff --git a/code/src/model/GameTime.java b/code/src/model/GameTime.java new file mode 100644 index 0000000..1e8846e --- /dev/null +++ b/code/src/model/GameTime.java @@ -0,0 +1,41 @@ +package model; + +import controller.CreatureController; +import javafx.fxml.FXML; +import javafx.scene.image.ImageView; +import javafx.scene.text.Text; + +public class GameTime { + private Thread timer; + private Text textTimer; + + public GameTime(Text textTimer) { + this.textTimer = textTimer; + } + + public void start() { + System.out.println("GameTime.start()"); + timer = new Thread("timer") { + public void run() { + int time = 0; + while (true) { + textTimer.setText(String.valueOf(time)); + time++; + try { + timer.sleep(1000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + } + }; + timer.start(); + } + + public void stop() { + System.out.println("GameTime.stop()"); + timer.stop(); + } +} + + diff --git a/code/src/model/Map.java b/code/src/model/Map.java index 1a59c70..5c5e699 100644 --- a/code/src/model/Map.java +++ b/code/src/model/Map.java @@ -56,7 +56,12 @@ public class Map { if(c == this.map.get(i)){ j=i+1; System.out.println("i : "+i+" j : "+j); - return this.map.get(j); + try { + return this.map.get(j); + }catch (IndexOutOfBoundsException e){ + return null; + } + } } return c;