Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int gameWidth;
- int gameHeight;
- int[][][] gameGrid;
- boolean init;
- int leftWall, rightWall, upWall, downWall;
- void setup() {
- size(1000, 1000, P2D);
- frameRate(30);
- gameWidth = 9;
- gameHeight = 9;
- gameGrid = new int[gameWidth][gameHeight][4];
- }
- void generateMap() {
- String s = "";
- for (int j = 0; j < gameWidth; j++) {
- for (int i = 0; i < gameHeight; i++) {
- int n = 0;
- int left = 0;
- int up = 0;
- int right = 0;
- int down = 0;
- try {
- if (gameGrid[i-1][j][2] == 2 || gameGrid[i-1][j][2] == 1 || gameGrid[i-1][j][2] == 0) {
- left = gameGrid[i-1][j][2];
- n++;
- }
- }
- catch (ArrayIndexOutOfBoundsException e) {
- left = 0;
- }
- try {
- if (gameGrid[i][j-1][3] == 2 || gameGrid[i][j-1][3] == 1 || gameGrid[i][j-1][3] == 0) {
- up = gameGrid[i][j-1][3];
- n++;
- }
- }
- catch (ArrayIndexOutOfBoundsException e) {
- up = 0;
- }
- try {
- if (gameGrid[i+1][j][0] == 2 || gameGrid[i+1][j][0] == 1 || gameGrid[i+1][j][0] == 0) {
- right = 2;
- n++;
- }
- }
- catch (ArrayIndexOutOfBoundsException e) {
- right = 0;
- }
- try {
- if (gameGrid[i][j+1][1] == 2 || gameGrid[i][j+1][1] == 1 || gameGrid[i][j+1][1] == 0) {
- down = 2;
- n++;
- }
- }
- catch (ArrayIndexOutOfBoundsException e) {
- down = 0;
- }
- gameGrid[i][j][0] = left;
- gameGrid[i][j][1] = up;
- gameGrid[i][j][2] = right;
- gameGrid[i][j][3] = down;
- if (left == 0 && up == 0) {
- int r = int(random(0, 2));
- if (r == 0) {
- if (gameGrid[i][j][2] == 2) {
- gameGrid[i][j][2] = int(random(0, 2));
- if (gameGrid[i][j][2] == 0) {
- if (gameGrid[i][j][3] == 2) {
- gameGrid[i][j][3] = 1;
- }
- } else if (gameGrid[i][j][2] == 1) {
- if (gameGrid[i][j][3] == 2) {
- gameGrid[i][j][3] = int(random(0, 2));
- }
- }
- }
- } else if (r == 1) {
- if (gameGrid[i][j][3] == 2) {
- gameGrid[i][j][3] = int(random(0, 2));
- if (gameGrid[i][j][3] == 0) {
- if (gameGrid[i][j][2] == 2) {
- gameGrid[i][j][2] = 1;
- }
- } else if (gameGrid[i][j][3] == 1) {
- if (gameGrid[i][j][2] == 2) {
- gameGrid[i][j][2] = int(random(0, 2));
- }
- }
- }
- }
- } else if (left == 1 && up == 1) {
- if (gameGrid[i][j][2] == 2) {
- gameGrid[i][j][2] = int(random(0, 2));
- if (gameGrid[i][j][2] == 0) {
- if (gameGrid[i][j][3] == 2) {
- gameGrid[i][j][3] = 1;
- }
- } else if (gameGrid[i][j][2] == 1) {
- if (gameGrid[i][j][3] == 2) {
- gameGrid[i][j][3] = int(random(0, 2));
- }
- }
- } else if (gameGrid[i][j][3] == 2) {
- if (gameGrid[i][j][3] == 2) {
- gameGrid[i][j][3] = int(random(0, 2));
- }
- }
- } else if (((left == 1 && up == 0) || (left == 0 && up == 1)) && n != 2) {
- int r = int(random(0, 2));
- if (r == 0) {
- if (gameGrid[i][j][2] == 2) {
- gameGrid[i][j][2] = int(random(0, 2));
- if (gameGrid[i][j][2] == 0) {
- if (gameGrid[i][j][3] == 2) {
- gameGrid[i][j][3] = 1;
- }
- } else if (gameGrid[i][j][2] == 1) {
- if (gameGrid[i][j][3] == 2) {
- gameGrid[i][j][3] = int(random(0, 2));
- }
- }
- } else if (gameGrid[i][j][2] == 0) {
- if (gameGrid[i][j][3] == 2) {
- gameGrid[i][j][3] = 1;
- }
- }
- } else if (r == 1) {
- if (gameGrid[i][j][3] == 2) {
- gameGrid[i][j][3] = int(random(0, 2));
- if (gameGrid[i][j][3] == 0) {
- if (gameGrid[i][j][2] == 2) {
- gameGrid[i][j][2] = 1;
- }
- } else if (gameGrid[i][j][3] == 1) {
- if (gameGrid[i][j][2] == 2) {
- gameGrid[i][j][2] = int(random(0, 2));
- }
- }
- } else if (gameGrid[i][j][3] == 0) {
- if (gameGrid[i][j][2] == 2) {
- gameGrid[i][j][2] = 1;
- }
- }
- }
- } else if (n == 2) {
- if (i == gameWidth-1 && j == 0) {
- gameGrid[i][j][3] = 1;
- } else if (i == 0 && j == gameHeight-1) {
- gameGrid[i][j][2] = 1;
- }
- }
- s += " "+n;
- }
- s += "\n";
- }
- println(s);
- init = true;
- }
- void draw() {
- if (!init) {
- generateMap();
- }
- background(0);
- stroke(255);
- for (int i = 0; i < gameWidth; i++) {
- for (int j = 0; j < gameHeight; j++) {
- try {
- leftWall = gameGrid[i-1][j][2];
- }
- catch (ArrayIndexOutOfBoundsException e) {
- leftWall = 0;
- }
- try {
- upWall = gameGrid[i][j-1][3];
- }
- catch (ArrayIndexOutOfBoundsException e) {
- upWall = 0;
- }
- try {
- rightWall = gameGrid[i+1][j][0];
- }
- catch (ArrayIndexOutOfBoundsException e) {
- rightWall = 0;
- }
- try {
- downWall = gameGrid[i][j+1][1];
- }
- catch (ArrayIndexOutOfBoundsException e) {
- downWall = 0;
- }
- pushMatrix();
- translate(50, 50);
- if (leftWall == 0) {
- line(i*100, j*100, i*100, j*100+100);
- }
- if (upWall == 0) {
- line(i*100, j*100, i*100+100, j*100);
- }
- if (rightWall == 0) {
- line(i*100+100, j*100, i*100+100, j*100+100);
- }
- if (downWall == 0) {
- line(i*100, j*100+100, i*100+100, j*100+100);
- }
- popMatrix();
- }
- }
- }
- void mouseClicked() {
- generateMap();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement