Debucquoy Anthony 8749c23333
All checks were successful
continuous-integration/drone/push Build is passing
File Parser for levels (#18)
Co-authored-by: Debucquoy Anthony (tonitch) <debucquoy.anthony@gmail.com>
Reviewed-on: #18
Reviewed-by: Mat_02 <diletomatteo@gmail.com>
2023-04-21 20:00:15 +02:00

60 lines
1.3 KiB
Java

package school_project;
import java.io.Serializable;
/**
* Base class for everything that is a shape kind, like map and pieces
* it contain a matrix of boolean where the shape is defined by the true's
*/
public class Shape implements Serializable, Cloneable{
protected boolean[][] matrix;
protected int height, width;
public Shape() {
matrix = new boolean[0][0];
}
public Shape(boolean[][] matrix){
this.setShape(matrix);
}
public void setShape(boolean[][] matrix) throws IllegalArgumentException{
height = matrix.length;
width = matrix[0].length;
for (boolean[] row: matrix){
if(row.length != width){
throw new IllegalArgumentException("The argument should be a square matrix");
}
}
this.matrix = matrix;
}
public int getHeight() {
return height;
}
public int getWidth() {
return width;
}
public boolean[][] getShape() {
return matrix;
}
@Override
public String toString() {
String ret = "";
for (boolean[] row : matrix) {
for (boolean el : row) {
if(el) ret = ret.concat("");
else ret = ret.concat("");
}
ret = ret.concat("\n");
}
return ret;
}
}