Advertisement
Guest User

Untitled

a guest
Aug 2nd, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.01 KB | None | 0 0
  1. int gameWidth;
  2. int gameHeight;
  3.  
  4. int[][][] gameGrid;
  5. boolean init;
  6.  
  7. int leftWall, rightWall, upWall, downWall;
  8.  
  9. void setup() {
  10.   size(1000, 1000, P2D);
  11.   frameRate(30);
  12.  
  13.   gameWidth = 9;
  14.   gameHeight = 9;
  15.  
  16.   gameGrid = new int[gameWidth][gameHeight][4];
  17. }
  18.  
  19. void generateMap() {
  20.   String s = "";
  21.   for (int j = 0; j < gameWidth; j++) {
  22.     for (int i = 0; i < gameHeight; i++) {
  23.  
  24.       int n = 0;
  25.  
  26.       int left = 0;
  27.       int up = 0;
  28.       int right = 0;
  29.       int down = 0;
  30.  
  31.       try {
  32.         if (gameGrid[i-1][j][2] == 2 || gameGrid[i-1][j][2] == 1 || gameGrid[i-1][j][2] == 0) {
  33.           left = gameGrid[i-1][j][2];
  34.           n++;
  35.         }
  36.       }
  37.       catch (ArrayIndexOutOfBoundsException e) {
  38.         left = 0;
  39.       }
  40.  
  41.       try {
  42.         if (gameGrid[i][j-1][3] == 2 || gameGrid[i][j-1][3] == 1 || gameGrid[i][j-1][3] == 0) {
  43.           up = gameGrid[i][j-1][3];
  44.           n++;
  45.         }
  46.       }
  47.       catch (ArrayIndexOutOfBoundsException e) {
  48.         up = 0;
  49.       }
  50.  
  51.       try {
  52.         if (gameGrid[i+1][j][0] == 2 || gameGrid[i+1][j][0] == 1 || gameGrid[i+1][j][0] == 0) {
  53.           right = 2;
  54.           n++;
  55.         }
  56.       }
  57.       catch (ArrayIndexOutOfBoundsException e) {
  58.         right = 0;
  59.       }
  60.  
  61.       try {
  62.         if (gameGrid[i][j+1][1] == 2 || gameGrid[i][j+1][1] == 1 || gameGrid[i][j+1][1] == 0) {
  63.           down = 2;
  64.           n++;
  65.         }
  66.       }
  67.       catch (ArrayIndexOutOfBoundsException e) {
  68.         down = 0;
  69.       }
  70.  
  71.       gameGrid[i][j][0] = left;
  72.       gameGrid[i][j][1] = up;
  73.       gameGrid[i][j][2] = right;
  74.       gameGrid[i][j][3] = down;
  75.  
  76.       if (left == 0 && up == 0) {
  77.         int r = int(random(0, 2));
  78.         if (r == 0) {
  79.           if (gameGrid[i][j][2] == 2) {
  80.             gameGrid[i][j][2] = int(random(0, 2));
  81.             if (gameGrid[i][j][2] == 0) {
  82.               if (gameGrid[i][j][3] == 2) {
  83.                 gameGrid[i][j][3] = 1;
  84.               }
  85.             } else if (gameGrid[i][j][2] == 1) {
  86.               if (gameGrid[i][j][3] == 2) {
  87.                 gameGrid[i][j][3] = int(random(0, 2));
  88.               }
  89.             }
  90.           }
  91.         } else if (r == 1) {
  92.           if (gameGrid[i][j][3] == 2) {
  93.             gameGrid[i][j][3] = int(random(0, 2));
  94.             if (gameGrid[i][j][3] == 0) {
  95.               if (gameGrid[i][j][2] == 2) {
  96.                 gameGrid[i][j][2] = 1;
  97.               }
  98.             } else if (gameGrid[i][j][3] == 1) {
  99.               if (gameGrid[i][j][2] == 2) {
  100.                 gameGrid[i][j][2] = int(random(0, 2));
  101.               }
  102.             }
  103.           }
  104.         }
  105.       } else if (left == 1 && up == 1) {
  106.         if (gameGrid[i][j][2] == 2) {
  107.           gameGrid[i][j][2] = int(random(0, 2));
  108.           if (gameGrid[i][j][2] == 0) {
  109.             if (gameGrid[i][j][3] == 2) {
  110.               gameGrid[i][j][3] = 1;
  111.             }
  112.           } else if (gameGrid[i][j][2] == 1) {
  113.             if (gameGrid[i][j][3] == 2) {
  114.               gameGrid[i][j][3] = int(random(0, 2));
  115.             }
  116.           }
  117.         } else if (gameGrid[i][j][3] == 2) {
  118.           if (gameGrid[i][j][3] == 2) {
  119.             gameGrid[i][j][3] = int(random(0, 2));
  120.           }
  121.         }
  122.       } else if (((left == 1 && up == 0) || (left == 0 && up == 1)) && n != 2) {
  123.         int r = int(random(0, 2));
  124.         if (r == 0) {
  125.           if (gameGrid[i][j][2] == 2) {
  126.             gameGrid[i][j][2] = int(random(0, 2));
  127.             if (gameGrid[i][j][2] == 0) {
  128.               if (gameGrid[i][j][3] == 2) {
  129.                 gameGrid[i][j][3] = 1;
  130.               }
  131.             } else if (gameGrid[i][j][2] == 1) {
  132.               if (gameGrid[i][j][3] == 2) {
  133.                 gameGrid[i][j][3] = int(random(0, 2));
  134.               }
  135.             }
  136.           } else if (gameGrid[i][j][2] == 0) {
  137.             if (gameGrid[i][j][3] == 2) {
  138.               gameGrid[i][j][3] = 1;
  139.             }
  140.           }
  141.         } else if (r == 1) {
  142.           if (gameGrid[i][j][3] == 2) {
  143.             gameGrid[i][j][3] = int(random(0, 2));
  144.             if (gameGrid[i][j][3] == 0) {
  145.               if (gameGrid[i][j][2] == 2) {
  146.                 gameGrid[i][j][2] = 1;
  147.               }
  148.             } else if (gameGrid[i][j][3] == 1) {
  149.               if (gameGrid[i][j][2] == 2) {
  150.                 gameGrid[i][j][2] = int(random(0, 2));
  151.               }
  152.             }
  153.           } else if (gameGrid[i][j][3] == 0) {
  154.             if (gameGrid[i][j][2] == 2) {
  155.               gameGrid[i][j][2] = 1;
  156.             }
  157.           }
  158.         }
  159.       } else if (n == 2) {
  160.         if (i == gameWidth-1 && j == 0) {
  161.           gameGrid[i][j][3] = 1;
  162.         } else if (i == 0 && j == gameHeight-1) {
  163.           gameGrid[i][j][2] = 1;
  164.         }
  165.       }
  166.  
  167.       s += " "+n;
  168.     }
  169.     s += "\n";
  170.   }
  171.  
  172.   println(s);
  173.  
  174.   init = true;
  175. }
  176.  
  177. void draw() {
  178.   if (!init) {
  179.     generateMap();
  180.   }
  181.   background(0);
  182.   stroke(255);
  183.   for (int i = 0; i < gameWidth; i++) {
  184.     for (int j = 0; j < gameHeight; j++) {
  185.       try {
  186.         leftWall = gameGrid[i-1][j][2];
  187.       }
  188.       catch (ArrayIndexOutOfBoundsException e) {
  189.         leftWall = 0;
  190.       }
  191.       try {
  192.         upWall = gameGrid[i][j-1][3];
  193.       }
  194.       catch (ArrayIndexOutOfBoundsException e) {
  195.         upWall = 0;
  196.       }
  197.       try {
  198.         rightWall = gameGrid[i+1][j][0];
  199.       }
  200.       catch (ArrayIndexOutOfBoundsException e) {
  201.         rightWall = 0;
  202.       }
  203.       try {
  204.         downWall = gameGrid[i][j+1][1];
  205.       }
  206.       catch (ArrayIndexOutOfBoundsException e) {
  207.         downWall = 0;
  208.       }
  209.  
  210.  
  211.       pushMatrix();
  212.       translate(50, 50);
  213.  
  214.       if (leftWall == 0) {
  215.         line(i*100, j*100, i*100, j*100+100);
  216.       }
  217.       if (upWall == 0) {
  218.         line(i*100, j*100, i*100+100, j*100);
  219.       }
  220.       if (rightWall == 0) {
  221.         line(i*100+100, j*100, i*100+100, j*100+100);
  222.       }
  223.       if (downWall == 0) {
  224.         line(i*100, j*100+100, i*100+100, j*100+100);
  225.       }
  226.  
  227.       popMatrix();
  228.     }
  229.   }
  230. }
  231.  
  232. void mouseClicked() {
  233.   generateMap();
  234. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement