All checks were successful
continuous-integration/drone/push Build is passing
Co-authored-by: Debucquoy Anthony (tonitch) <debucquoy.anthony@gmail.com> Reviewed-on: #18 Reviewed-by: Mat_02 <diletomatteo@gmail.com>
60 lines
1.3 KiB
Java
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;
|
|
}
|
|
}
|