Skip to content

Commit 620a2c9

Browse files
committed
reverting whitespace
1 parent 8df218d commit 620a2c9

File tree

2 files changed

+172
-175
lines changed

2 files changed

+172
-175
lines changed

index.html

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,13 @@
11
<!DOCTYPE html>
22
<html lang="en">
3+
<head>
4+
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.4.0/p5.js"></script>
5+
<meta charset="utf-8" />
6+
<title>Wave Function Collapse</title>
7+
</head>
38

4-
<head>
5-
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.4.0/p5.js"></script>
6-
<meta charset="utf-8" />
7-
<title>Wave Function Collapse</title>
8-
</head>
9-
10-
<body>
11-
<main>
12-
</main>
13-
<script src="sketch.js"></script>
14-
</body>
15-
16-
</html>
9+
<body>
10+
<main></main>
11+
<script src="sketch.js"></script>
12+
</body>
13+
</html>

sketch.js

Lines changed: 162 additions & 162 deletions
Original file line numberDiff line numberDiff line change
@@ -11,181 +11,181 @@ const DOWN = 3;
1111
const LEFT = 4;
1212

1313
const rules = [
14-
[
15-
[BLANK, UP],
16-
[BLANK, RIGHT],
17-
[BLANK, DOWN],
18-
[BLANK, LEFT],
19-
],
20-
[
21-
[RIGHT, LEFT, DOWN],
22-
[LEFT, UP, DOWN],
23-
[BLANK, DOWN],
24-
[RIGHT, UP, DOWN],
25-
],
26-
[
27-
[RIGHT, LEFT, DOWN],
28-
[LEFT, UP, DOWN],
29-
[RIGHT, LEFT, UP],
30-
[BLANK, LEFT],
31-
],
32-
[
33-
[BLANK, UP],
34-
[LEFT, UP, DOWN],
35-
[RIGHT, LEFT, UP],
36-
[RIGHT, UP, DOWN],
37-
],
38-
[
39-
[RIGHT, LEFT, DOWN],
40-
[BLANK, RIGHT],
41-
[RIGHT, LEFT, UP],
42-
[UP, DOWN, RIGHT],
43-
],
14+
[
15+
[BLANK, UP],
16+
[BLANK, RIGHT],
17+
[BLANK, DOWN],
18+
[BLANK, LEFT],
19+
],
20+
[
21+
[RIGHT, LEFT, DOWN],
22+
[LEFT, UP, DOWN],
23+
[BLANK, DOWN],
24+
[RIGHT, UP, DOWN],
25+
],
26+
[
27+
[RIGHT, LEFT, DOWN],
28+
[LEFT, UP, DOWN],
29+
[RIGHT, LEFT, UP],
30+
[BLANK, LEFT],
31+
],
32+
[
33+
[BLANK, UP],
34+
[LEFT, UP, DOWN],
35+
[RIGHT, LEFT, UP],
36+
[RIGHT, UP, DOWN],
37+
],
38+
[
39+
[RIGHT, LEFT, DOWN],
40+
[BLANK, RIGHT],
41+
[RIGHT, LEFT, UP],
42+
[UP, DOWN, RIGHT],
43+
],
4444
];
4545

4646
function preload() {
47-
tiles[0] = loadImage("tiles/blank.png");
48-
tiles[1] = loadImage("tiles/up.png");
49-
tiles[2] = loadImage("tiles/right.png");
50-
tiles[3] = loadImage("tiles/down.png");
51-
tiles[4] = loadImage("tiles/left.png");
47+
tiles[0] = loadImage('tiles/blank.png');
48+
tiles[1] = loadImage('tiles/up.png');
49+
tiles[2] = loadImage('tiles/right.png');
50+
tiles[3] = loadImage('tiles/down.png');
51+
tiles[4] = loadImage('tiles/left.png');
5252
}
5353

5454
function setup() {
55-
createCanvas(800, 800);
56-
randomSeed("SHIFFMAN");
57-
for (let i = 0; i < DIM * DIM; i++) {
58-
grid[i] = {
59-
collapsed: false,
60-
options: [BLANK, UP, RIGHT, DOWN, LEFT],
61-
};
62-
}
55+
createCanvas(800, 800);
56+
randomSeed('SHIFFMAN');
57+
for (let i = 0; i < DIM * DIM; i++) {
58+
grid[i] = {
59+
collapsed: false,
60+
options: [BLANK, UP, RIGHT, DOWN, LEFT],
61+
};
62+
}
6363
}
6464

6565
function checkValid(arr, valid) {
66-
//console.log(arr, valid);
67-
for (let i = arr.length - 1; i >= 0; i--) {
68-
// VALID: [BLANK, RIGHT]
69-
// ARR: [BLANK, UP, RIGHT, DOWN, LEFT]
70-
// result in removing UP, DOWN, LEFT
71-
let element = arr[i];
72-
// console.log(element, valid.includes(element));
73-
if (!valid.includes(element)) {
74-
arr.splice(i, 1);
75-
}
76-
}
77-
// console.log(arr);
78-
// console.log("----------");
66+
//console.log(arr, valid);
67+
for (let i = arr.length - 1; i >= 0; i--) {
68+
// VALID: [BLANK, RIGHT]
69+
// ARR: [BLANK, UP, RIGHT, DOWN, LEFT]
70+
// result in removing UP, DOWN, LEFT
71+
let element = arr[i];
72+
// console.log(element, valid.includes(element));
73+
if (!valid.includes(element)) {
74+
arr.splice(i, 1);
75+
}
76+
}
77+
// console.log(arr);
78+
// console.log("----------");
7979
}
8080

8181
function mousePressed() {
82-
redraw();
82+
redraw();
8383
}
8484

8585
function draw() {
86-
background(0);
87-
88-
const w = width / DIM;
89-
const h = height / DIM;
90-
for (let j = 0; j < DIM; j++) {
91-
for (let i = 0; i < DIM; i++) {
92-
let cell = grid[i + j * DIM];
93-
if (cell.collapsed) {
94-
let index = cell.options[0];
95-
image(tiles[index], i * w, j * h, w, h);
96-
} else {
97-
fill(0);
98-
stroke(255);
99-
rect(i * w, j * h, w, h);
100-
}
101-
}
102-
}
103-
104-
// Pick cell with least entropy
105-
let gridCopy = grid.slice();
106-
gridCopy = gridCopy.filter((a) => !a.collapsed);
107-
// console.table(grid);
108-
// console.table(gridCopy);
109-
110-
if (gridCopy.length == 0) {
111-
return;
112-
}
113-
gridCopy.sort((a, b) => {
114-
return a.options.length - b.options.length;
115-
});
116-
117-
let len = gridCopy[0].options.length;
118-
let stopIndex = 0;
119-
for (let i = 1; i < gridCopy.length; i++) {
120-
if (gridCopy[i].options.length > len) {
121-
stopIndex = i;
122-
break;
123-
}
124-
}
125-
126-
if (stopIndex > 0) gridCopy.splice(stopIndex);
127-
const cell = random(gridCopy);
128-
cell.collapsed = true;
129-
const pick = random(cell.options);
130-
cell.options = [pick];
131-
132-
const nextGrid = [];
133-
for (let j = 0; j < DIM; j++) {
134-
for (let i = 0; i < DIM; i++) {
135-
let index = i + j * DIM;
136-
if (grid[index].collapsed) {
137-
nextGrid[index] = grid[index];
138-
} else {
139-
let options = [BLANK, UP, RIGHT, DOWN, LEFT];
140-
// Look up
141-
if (j > 0) {
142-
let up = grid[i + (j - 1) * DIM];
143-
let validOptions = [];
144-
for (let option of up.options) {
145-
let valid = rules[option][2];
146-
validOptions = validOptions.concat(valid);
147-
}
148-
checkValid(options, validOptions);
149-
}
150-
// Look right
151-
if (i < DIM - 1) {
152-
//console.log(i, j);
153-
let right = grid[i + 1 + j * DIM];
154-
let validOptions = [];
155-
for (let option of right.options) {
156-
let valid = rules[option][3];
157-
validOptions = validOptions.concat(valid);
158-
}
159-
checkValid(options, validOptions);
160-
}
161-
// Look down
162-
if (j < DIM - 1) {
163-
let down = grid[i + (j + 1) * DIM];
164-
let validOptions = [];
165-
for (let option of down.options) {
166-
let valid = rules[option][0];
167-
validOptions = validOptions.concat(valid);
168-
}
169-
checkValid(options, validOptions);
170-
}
171-
// Look left
172-
if (i > 0) {
173-
let left = grid[i - 1 + j * DIM];
174-
let validOptions = [];
175-
for (let option of left.options) {
176-
let valid = rules[option][1];
177-
validOptions = validOptions.concat(valid);
178-
}
179-
checkValid(options, validOptions);
180-
}
181-
182-
nextGrid[index] = {
183-
options,
184-
collapsed: false,
185-
};
186-
}
187-
}
188-
}
189-
190-
grid = nextGrid;
86+
background(0);
87+
88+
const w = width / DIM;
89+
const h = height / DIM;
90+
for (let j = 0; j < DIM; j++) {
91+
for (let i = 0; i < DIM; i++) {
92+
let cell = grid[i + j * DIM];
93+
if (cell.collapsed) {
94+
let index = cell.options[0];
95+
image(tiles[index], i * w, j * h, w, h);
96+
} else {
97+
fill(0);
98+
stroke(255);
99+
rect(i * w, j * h, w, h);
100+
}
101+
}
102+
}
103+
104+
// Pick cell with least entropy
105+
let gridCopy = grid.slice();
106+
gridCopy = gridCopy.filter((a) => !a.collapsed);
107+
// console.table(grid);
108+
// console.table(gridCopy);
109+
110+
if (gridCopy.length == 0) {
111+
return;
112+
}
113+
gridCopy.sort((a, b) => {
114+
return a.options.length - b.options.length;
115+
});
116+
117+
let len = gridCopy[0].options.length;
118+
let stopIndex = 0;
119+
for (let i = 1; i < gridCopy.length; i++) {
120+
if (gridCopy[i].options.length > len) {
121+
stopIndex = i;
122+
break;
123+
}
124+
}
125+
126+
if (stopIndex > 0) gridCopy.splice(stopIndex);
127+
const cell = random(gridCopy);
128+
cell.collapsed = true;
129+
const pick = random(cell.options);
130+
cell.options = [pick];
131+
132+
const nextGrid = [];
133+
for (let j = 0; j < DIM; j++) {
134+
for (let i = 0; i < DIM; i++) {
135+
let index = i + j * DIM;
136+
if (grid[index].collapsed) {
137+
nextGrid[index] = grid[index];
138+
} else {
139+
let options = [BLANK, UP, RIGHT, DOWN, LEFT];
140+
// Look up
141+
if (j > 0) {
142+
let up = grid[i + (j - 1) * DIM];
143+
let validOptions = [];
144+
for (let option of up.options) {
145+
let valid = rules[option][2];
146+
validOptions = validOptions.concat(valid);
147+
}
148+
checkValid(options, validOptions);
149+
}
150+
// Look right
151+
if (i < DIM - 1) {
152+
//console.log(i, j);
153+
let right = grid[i + 1 + j * DIM];
154+
let validOptions = [];
155+
for (let option of right.options) {
156+
let valid = rules[option][3];
157+
validOptions = validOptions.concat(valid);
158+
}
159+
checkValid(options, validOptions);
160+
}
161+
// Look down
162+
if (j < DIM - 1) {
163+
let down = grid[i + (j + 1) * DIM];
164+
let validOptions = [];
165+
for (let option of down.options) {
166+
let valid = rules[option][0];
167+
validOptions = validOptions.concat(valid);
168+
}
169+
checkValid(options, validOptions);
170+
}
171+
// Look left
172+
if (i > 0) {
173+
let left = grid[i - 1 + j * DIM];
174+
let validOptions = [];
175+
for (let option of left.options) {
176+
let valid = rules[option][1];
177+
validOptions = validOptions.concat(valid);
178+
}
179+
checkValid(options, validOptions);
180+
}
181+
182+
nextGrid[index] = {
183+
options,
184+
collapsed: false,
185+
};
186+
}
187+
}
188+
}
189+
190+
grid = nextGrid;
191191
}

0 commit comments

Comments
 (0)