Ok, so i want t generate a random maze for my maze game. I have hardcoded the maze like this, and have several different versions that i would like to be able to have spawned at random.
public Maze() {
this.mazeMap1 = new BlockType[][] {
{H, H, H, H, H, H, H, H, H, H, H, H, H, H, H},
{H, E, E, E, E, E, E, E, E, E, E, E, E, E, H},
{H, E, E, E, H, E, E, H, E, E, H, E, E, E, H},
{H, E, E, E, E, E, E, E, E, E, E, E, E, E, H},
{H, E, E, E, E, E, E, E, E, E, E, E, E, E, H},
{H, E, E, E, H, E, E, H, E, E, H, E, E, E, H},
{H, E, E, E, E, E, E, E, E, E, E, E, E, E, H},
{H, E, E, E, E, E, E, E, E, E, E, E, E, E, H},
{H, E, E, E, H, E, E, H, E, E, H, E, E, E, H},
{H, E, E, E, E, E, E, E, E, E, E, E, E, E, H},
{H, E, E, E, E, E, E, E, E, E, E, E, E, E, H},
{H, E, E, E, H, E, E, H, E, E, H, E, E, E, H},
{H, E, E, E, E, E, E, E, E, E, E, E, E, E, H},
{H, E, E, E, E, E, E, E, E, E, E, E, E, E, H},
{H, H, H, H, H, H, H, H, H, H, H, H, H, H, H}
};
}
then i create a getter and return the maze
public BlockType[][] getMazeMap() {
return mazeMap2;
}
Then i have a class 'Board' where i make the maze
private void makeBoard() {
blocks = new Maze().getMazeMap();
}
If i would have, say 10 different hardcoded mazes, how would i generate one at random?
You need a collection of your maze maps. Having mazemap1, mazemap2, etc. doesn't (easily) allow you to pick one.
ArrayList<Block[][]> mazemaps = new ArrayList<>();
mazemaps.add( new BlockType[][] { ... } ); // with all your data
mazemaps.add( new BlockType[][] { ... } ); // second map data
Then you can pick one:
int maze = new Random().nextInt(mazemaps.size());
return mazemaps.get(maze);
(There are plenty of other things you can maybe do better, but this is a start)