Adding Array Copy for matrix
Currently only boolean but we can add more if we need
This commit is contained in:
parent
2fa2ab1bb1
commit
5dceec0f79
@ -1,9 +1,13 @@
|
|||||||
package school_project;
|
package school_project;
|
||||||
|
|
||||||
|
import school_project.Utils.Array;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
|
||||||
public class MapGenerator {
|
public class MapGenerator {
|
||||||
private static Random rand = new Random();
|
private static final Random rand = new Random();
|
||||||
public enum Difficulty {
|
public enum Difficulty {
|
||||||
Easy,
|
Easy,
|
||||||
Medium,
|
Medium,
|
||||||
@ -24,6 +28,7 @@ public class MapGenerator {
|
|||||||
default -> map_size = new Vec2();
|
default -> map_size = new Vec2();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Cut edges
|
||||||
boolean[][] map_shape = new boolean[map_size.x][map_size.y];
|
boolean[][] map_shape = new boolean[map_size.x][map_size.y];
|
||||||
for (boolean[] b : map_shape) {
|
for (boolean[] b : map_shape) {
|
||||||
Arrays.fill(b, true);
|
Arrays.fill(b, true);
|
||||||
@ -36,6 +41,11 @@ public class MapGenerator {
|
|||||||
map_shape[i][j] = rand.nextBoolean();
|
map_shape[i][j] = rand.nextBoolean();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return new Map(map_shape);
|
Map ret = new Map(map_shape);
|
||||||
|
boolean[][] piece_layout = Array.MatrixCopyOf(map_shape);
|
||||||
|
|
||||||
|
|
||||||
|
//generate pieces
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
13
app/src/main/java/school_project/Utils/Array.java
Normal file
13
app/src/main/java/school_project/Utils/Array.java
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
package school_project.Utils;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
|
||||||
|
public class Array{
|
||||||
|
public static boolean[][] MatrixCopyOf(boolean[][] o){
|
||||||
|
boolean[][] ret = new boolean[o.length][];
|
||||||
|
for (int i = 0; i < o.length; i++){
|
||||||
|
ret[i] = Arrays.copyOf(o[i], o[i].length);
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
}
|
26
app/src/test/java/school_project/Utils/ArrayTest.java
Normal file
26
app/src/test/java/school_project/Utils/ArrayTest.java
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
package school_project.Utils;
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.*;
|
||||||
|
|
||||||
|
class ArrayTest {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void matrixCopyOf() {
|
||||||
|
boolean[][] a = new boolean[][] {
|
||||||
|
{true, false, true},
|
||||||
|
{false, false, false},
|
||||||
|
{true, false, true},
|
||||||
|
};
|
||||||
|
boolean[][] b = new boolean[][] {
|
||||||
|
{true, false, true},
|
||||||
|
{false, false, false},
|
||||||
|
{true, false, true},
|
||||||
|
};
|
||||||
|
boolean[][] c = Array.MatrixCopyOf(a);
|
||||||
|
assertArrayEquals(a, c);
|
||||||
|
a[1][1] = true;
|
||||||
|
assertArrayEquals(b, c);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user