Advertisement
Guest User

Untitled

a guest
Oct 17th, 2017
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.51 KB | None | 0 0
  1.  
  2. int[][] curGrid = new int[320][320];
  3. int[][] oldGrid = new int[320][320];
  4. boolean rand;
  5.  
  6. void initializeGrid() {
  7.     for (int i = 0; i < 320; i++) {
  8.         for (int j = 0; j < 320; j++) {
  9.             curGrid[i][j] = int(random(16));
  10.         }
  11.     }
  12. }
  13.  
  14. void setup() {
  15.     size(320, 320);
  16.     background(0);  
  17.     initializeGrid();
  18.     colorMode(HSB);
  19.     rand = false;
  20. }
  21.  
  22. void iterate(int cX, int cY) {
  23.     int[] dirs = {-1, 0, 1};
  24.     for (int i = 0; i < 3; i++) {
  25.         for (int j = 0; j < 3; j++) {
  26.             int dX = dirs[i];
  27.             int dY = dirs[j];
  28.             if ((dX == 0 && dY == 0) || (dX != 0 && dY != 0)) {
  29.                 continue;
  30.             }
  31.             int nX = cX + dX;
  32.             int nY = cY + dY;
  33.             if ((nX < 0 || nX >= 320) || (nY < 0 || nY >= 320)) {
  34.                 continue;
  35.             }
  36.             int v1 = oldGrid[nX][nY];
  37.             int v2 = oldGrid[cX][cY];
  38.             if (((v1 + 1) % 16 == v2) && !(rand && int(random(2)) == 0)) {
  39.                 curGrid[nX][nY] = v2;
  40.             }
  41.         }
  42.     }
  43. }
  44.  
  45. void draw() {
  46.     for (int i = 0; i < 320; i++) {
  47.         for (int j = 0; j < 320; j++) {
  48.             oldGrid[i][j] = curGrid[i][j];
  49.         }
  50.     }
  51.     for (int i = 0; i < 320; i++) {
  52.         for (int j = 0; j < 320; j++) {
  53.             iterate(i, j);
  54.             noStroke();
  55.             fill(map(curGrid[i][j], 0, 16, 0, 240), 255, 255);
  56.             rect(i, j, 1, 1);
  57.         }
  58.     }
  59. }
  60.  
  61. void mousePressed() {
  62.     rand = !rand;
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement