Advertisement
Guest User

mazegeneratorhehehehe

a guest
Nov 20th, 2019
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.38 KB | None | 0 0
  1. private void generateMaze(int xFrom, int xTo, int yFrom, int yTo, boolean isVertical) { // vertical = pionowy
  2.         if(((yTo-yFrom) <= 0) || ((xTo-xFrom) <= 0))
  3.             return;
  4.  
  5.         Random rand = new Random();
  6.         int wallPos;
  7.         int holePos;
  8.         if(isVertical) {
  9.             wallPos = (rand.nextInt((xTo - xFrom) / 2)) * 2 + xFrom + 1;
  10.             holePos = (rand.nextInt((yTo - yFrom) / 2)) * 2 + yFrom;
  11.             drawWall(wallPos, holePos, yFrom, yTo, true);
  12.             // left
  13.             generateMaze(xFrom, wallPos-1, yFrom, yTo, ((wallPos-1-xFrom) == (yTo-yFrom) ? rand.nextBoolean() : (wallPos-1-xFrom) > (yTo-yFrom)));
  14.             // right
  15.             generateMaze(wallPos+1, xTo, yFrom, yTo, ((wallPos-1-xFrom) == (yTo-yFrom) ? rand.nextBoolean() : (wallPos-1-xFrom) > (yTo-yFrom)));
  16.         }
  17.         else {
  18.             wallPos = (rand.nextInt((yTo - yFrom) / 2)) * 2 + yFrom + 1;
  19.             holePos = (rand.nextInt((xTo - xFrom) / 2)) * 2 + xFrom;
  20.             drawWall(wallPos, holePos, xFrom, xTo, false);
  21.             // up
  22.             generateMaze(xFrom, xTo, yFrom, wallPos-1, ((xTo-xFrom) == (wallPos-1-yFrom) ? rand.nextBoolean() : (xTo-xFrom) > (wallPos-1-yFrom)));
  23.             // down
  24.             generateMaze(xFrom, xTo, wallPos+1, yTo, ((xTo-xFrom) == (wallPos-1-yFrom) ? rand.nextBoolean() : (xTo-xFrom) > (wallPos-1-yFrom)));
  25.         }
  26.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement