Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private void generateMaze(int xFrom, int xTo, int yFrom, int yTo, boolean isVertical) { // vertical = pionowy
- if(((yTo-yFrom) <= 0) || ((xTo-xFrom) <= 0))
- return;
- Random rand = new Random();
- int wallPos;
- int holePos;
- if(isVertical) {
- wallPos = (rand.nextInt((xTo - xFrom) / 2)) * 2 + xFrom + 1;
- holePos = (rand.nextInt((yTo - yFrom) / 2)) * 2 + yFrom;
- drawWall(wallPos, holePos, yFrom, yTo, true);
- // left
- generateMaze(xFrom, wallPos-1, yFrom, yTo, ((wallPos-1-xFrom) == (yTo-yFrom) ? rand.nextBoolean() : (wallPos-1-xFrom) > (yTo-yFrom)));
- // right
- generateMaze(wallPos+1, xTo, yFrom, yTo, ((wallPos-1-xFrom) == (yTo-yFrom) ? rand.nextBoolean() : (wallPos-1-xFrom) > (yTo-yFrom)));
- }
- else {
- wallPos = (rand.nextInt((yTo - yFrom) / 2)) * 2 + yFrom + 1;
- holePos = (rand.nextInt((xTo - xFrom) / 2)) * 2 + xFrom;
- drawWall(wallPos, holePos, xFrom, xTo, false);
- // up
- generateMaze(xFrom, xTo, yFrom, wallPos-1, ((xTo-xFrom) == (wallPos-1-yFrom) ? rand.nextBoolean() : (xTo-xFrom) > (wallPos-1-yFrom)));
- // down
- generateMaze(xFrom, xTo, wallPos+1, yTo, ((xTo-xFrom) == (wallPos-1-yFrom) ? rand.nextBoolean() : (xTo-xFrom) > (wallPos-1-yFrom)));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement