diff --git a/AppLaser.java b/AppLaser.java index 468c4a7..cddcb50 100644 --- a/AppLaser.java +++ b/AppLaser.java @@ -3,23 +3,42 @@ public class AppLaser { public static void main(String [] args) { - int start_i = 4; + int start_i = 3; int start_j = 1; int start_dir = 12; + int firstState_i = 0; + int firstState_j = 0; + + if (start_dir == 10) { + firstState_i = start_i - 1; + firstState_j = start_j; + } + else if (start_dir == 11) { + firstState_i = start_i + 1; + firstState_j = start_j; + } + else if (start_dir == 12) { + firstState_i = start_i; + firstState_j = start_j + 1; + } + else if (start_dir == 13) { + firstState_i = start_i; + firstState_j = start_j - 1; + } + Stack stack = new Stack (); - Universe universe = new Universe(6, 6, start_i, start_j, start_dir); + Universe universe = new Universe(5, 5, start_i, start_j, start_dir); - Situation previousState, currentState = new Situation(start_i, start_j, start_dir, 0); + Situation previousState, currentState = new Situation(firstState_i, firstState_j, start_dir, 0); //universe.addObstacle(4, 4); universe.print(); int i = 0; - - do { + while (!universe.isSolved()) { System.out.printf("%d %d %d %d %d", currentState.pos_i, currentState.pos_j, currentState.direction, currentState.nb_choix, universe.possibleChoices(currentState)); if (universe.canEvolve(currentState)) { @@ -33,9 +52,6 @@ public class AppLaser { System.out.println("\n\n"); universe.print(); } - - - } while (!universe.isSolved()); + } } - } diff --git a/Universe.java b/Universe.java index cd164fa..3865a8b 100644 --- a/Universe.java +++ b/Universe.java @@ -13,6 +13,7 @@ public class Universe { this.grid = new int[height][length]; this.height = height; this.length = length; + int i, j; for (i = 1; i < this.height - 1; i++) { for (j = 1; j < this.length - 1; j++) { @@ -104,7 +105,7 @@ public class Universe { else return -1; // back case 13: //west - if (this.grid[i + 1][j] == 0) return 2; // left + if (this.grid[i + 1][j] == 0) return 2; // left else if (this.grid[i - 1][j] == 0) return 3; // right else return -1; // back @@ -190,6 +191,7 @@ public class Universe { public void reset(Situation s) { this.grid[s.pos_i][s.pos_j] = 0; + this.boxes_to_fill++; } public boolean isSolved() {