Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int[][] curGrid = new int[320][320];
- int[][] oldGrid = new int[320][320];
- boolean rand;
- void initializeGrid() {
- for (int i = 0; i < 320; i++) {
- for (int j = 0; j < 320; j++) {
- curGrid[i][j] = int(random(16));
- }
- }
- }
- void setup() {
- size(320, 320);
- background(0);
- initializeGrid();
- colorMode(HSB);
- rand = false;
- }
- void iterate(int cX, int cY) {
- int[] dirs = {-1, 0, 1};
- for (int i = 0; i < 3; i++) {
- for (int j = 0; j < 3; j++) {
- int dX = dirs[i];
- int dY = dirs[j];
- if ((dX == 0 && dY == 0) || (dX != 0 && dY != 0)) {
- continue;
- }
- int nX = cX + dX;
- int nY = cY + dY;
- if ((nX < 0 || nX >= 320) || (nY < 0 || nY >= 320)) {
- continue;
- }
- int v1 = oldGrid[nX][nY];
- int v2 = oldGrid[cX][cY];
- if (((v1 + 1) % 16 == v2) && !(rand && int(random(2)) == 0)) {
- curGrid[nX][nY] = v2;
- }
- }
- }
- }
- void draw() {
- for (int i = 0; i < 320; i++) {
- for (int j = 0; j < 320; j++) {
- oldGrid[i][j] = curGrid[i][j];
- }
- }
- for (int i = 0; i < 320; i++) {
- for (int j = 0; j < 320; j++) {
- iterate(i, j);
- noStroke();
- fill(map(curGrid[i][j], 0, 16, 0, 240), 255, 255);
- rect(i, j, 1, 1);
- }
- }
- }
- void mousePressed() {
- rand = !rand;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement