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;
|
||||
|
||||
import school_project.Utils.Array;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Random;
|
||||
|
||||
public class MapGenerator {
|
||||
private static Random rand = new Random();
|
||||
private static final Random rand = new Random();
|
||||
public enum Difficulty {
|
||||
Easy,
|
||||
Medium,
|
||||
@ -24,6 +28,7 @@ public class MapGenerator {
|
||||
default -> map_size = new Vec2();
|
||||
}
|
||||
|
||||
// Cut edges
|
||||
boolean[][] map_shape = new boolean[map_size.x][map_size.y];
|
||||
for (boolean[] b : map_shape) {
|
||||
Arrays.fill(b, true);
|
||||
@ -36,6 +41,11 @@ public class MapGenerator {
|
||||
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