Adding Pieces positions
This commit is contained in:
@@ -1,19 +1,46 @@
|
||||
package school_project;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* Represent the map with its pieces.
|
||||
* Every piece has a position element that represent its position on the map
|
||||
*/
|
||||
public class Map extends Shape{
|
||||
private ArrayList<Piece> pieces;
|
||||
private final ArrayList<Piece> pieces = new ArrayList<>();
|
||||
|
||||
public Map(boolean[][] matrix) {
|
||||
super(matrix);
|
||||
}
|
||||
|
||||
public void addPiece(Piece piece){
|
||||
piece.setLinked_map(this);
|
||||
pieces.add(piece);
|
||||
}
|
||||
|
||||
/**
|
||||
* Return a matrix with all used space on the map to see if a piece can fit in a space
|
||||
*
|
||||
* @return matrix of boolean with false being the not used space
|
||||
*/
|
||||
public boolean[][] getUsedSpace(){
|
||||
|
||||
// Copy of the map to avoid side effect
|
||||
boolean[][] used = new boolean[height][width];
|
||||
for (int i = 0; i < height; i++) {
|
||||
used[i] = Arrays.copyOf(matrix[i], width);
|
||||
}
|
||||
|
||||
for (Piece p : pieces) {
|
||||
for(int x = 0; x < p.height; x++){
|
||||
for(int y = 0; y < p.width; y++){
|
||||
if (p.getShape()[x][y]){
|
||||
used[p.getPosition().x + x][p.getPosition().y + y] = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return used;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user