This commit will align piece to their in game position #48
| @ -2,6 +2,7 @@ package school_project; | ||||
|  | ||||
| import javafx.scene.Group; | ||||
| import javafx.scene.input.MouseButton; | ||||
| import school_project.Menu.MenuAcceuil; | ||||
| import school_project.Utils.MatrixShape; | ||||
|  | ||||
| import java.io.FileNotFoundException; | ||||
| @ -70,6 +71,9 @@ public class GameUI extends Group{ | ||||
|                         _piece.setLayoutX(grid.getLayoutX() + p.getPosition().y * (SEGMENT_SIZE+SPACE_SIZE)); | ||||
|                         _piece.setLayoutY(grid.getLayoutY() + p.getPosition().x * (SEGMENT_SIZE+SPACE_SIZE)); | ||||
|                     } | ||||
|                     if(level.gameDone()){ | ||||
|                         Controller.switchRoot(new MenuAcceuil()); | ||||
|                     } | ||||
|                 } | ||||
|             }); | ||||
|  | ||||
|  | ||||
| @ -68,6 +68,18 @@ public class Map extends Shape{ | ||||
|         return true; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Check if every pieces has a space on the board to know if the game is finished | ||||
|      * @return true if the game is finished, false if not | ||||
|      */ | ||||
|     public boolean gameDone(){ | ||||
|         ArrayList<Vec2> posList = getPosList(); | ||||
|         for(Piece p: pieces){ | ||||
|             posList.removeAll(p.getOccupation()); | ||||
|         } | ||||
|         return posList.isEmpty(); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Return a matrix with all used space on the map to see if a piece can fit in a space | ||||
|      * | ||||
|  | ||||
| @ -42,6 +42,8 @@ public class Piece extends Shape{ | ||||
|  | ||||
|     public ArrayList<Vec2> getOccupation(){ | ||||
|         ArrayList<Vec2> ret = new ArrayList<>(); | ||||
|         if(Position == null) | ||||
|             return ret; | ||||
|         for (int x = 0; x < height; x++) { | ||||
|             for (int y = 0; y < width; y++) { | ||||
|                if(getShape()[x][y]){ | ||||
|  | ||||
| @ -4,6 +4,7 @@ package school_project; | ||||
| import school_project.Utils.Array; | ||||
|  | ||||
| import java.io.Serializable; | ||||
| import java.util.ArrayList; | ||||
|  | ||||
| /** | ||||
|  * Base class for everything that is a shape kind, like map and pieces | ||||
| @ -84,6 +85,22 @@ public class Shape implements Serializable, Cloneable{ | ||||
|         return matrix; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Get the list of all the open possition of the map | ||||
|      * @return ArrayList of vec2 of all the positions | ||||
|      */ | ||||
|     public ArrayList<Vec2> getPosList(){ | ||||
|         ArrayList<Vec2> ret = new ArrayList<>(); | ||||
|         for (int x = 0; x < height; x++) { | ||||
|             for (int y = 0; y < width; y++) { | ||||
|                 if(matrix[x][y]){ | ||||
|                     ret.add(new Vec2(x, y)); | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|         return ret; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public String toString() { | ||||
|         String ret = ""; | ||||
|  | ||||
		Reference in New Issue
	
	Block a user