Skip to content

Commit a1a82bc

Browse files
committed
final working version
1 parent 52f92b3 commit a1a82bc

File tree

3 files changed

+39
-34
lines changed

3 files changed

+39
-34
lines changed

circuit/4f.png

-910 Bytes
Binary file not shown.

sketch.js

Lines changed: 25 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -3,45 +3,32 @@ const tileImages = [];
33

44
let grid = [];
55

6-
const DIM = 20;
6+
const DIM = 25;
77

88
function preload() {
99
const path = "circuit";
10-
tileImages[0] = loadImage(`${path}/0.png`);
11-
tileImages[1] = loadImage(`${path}/1.png`);
12-
tileImages[2] = loadImage(`${path}/2.png`);
13-
tileImages[3] = loadImage(`${path}/3.png`);
14-
tileImages[4] = loadImage(`${path}/4.png`);
15-
tileImages[5] = loadImage(`${path}/5.png`);
16-
tileImages[6] = loadImage(`${path}/6.png`);
17-
tileImages[7] = loadImage(`${path}/7.png`);
18-
tileImages[8] = loadImage(`${path}/8.png`);
19-
tileImages[9] = loadImage(`${path}/9.png`);
20-
tileImages[10] = loadImage(`${path}/10.png`);
21-
tileImages[11] = loadImage(`${path}/11.png`);
22-
tileImages[12] = loadImage(`${path}/12.png`);
23-
tileImages[13] = loadImage(`${path}/4f.png`);
10+
for (let i = 0; i < 13; i++) {
11+
tileImages[i] = loadImage(`${path}/${i}.png`);
12+
}
2413
}
2514

2615
function setup() {
2716
createCanvas(800, 800);
28-
// randomSeed(1);
2917

3018
// Loaded and created the tiles
31-
tiles[0] = new Tile(tileImages[0], [0, 0, 0, 0]);
32-
tiles[1] = new Tile(tileImages[1], [1, 1, 1, 1]);
33-
tiles[2] = new Tile(tileImages[2], [1, 2, 1, 1]);
34-
tiles[3] = new Tile(tileImages[3], [1, 3, 1, 3]);
35-
tiles[4] = new Tile(tileImages[4], [4, 2, 4, 0]);
36-
tiles[5] = new Tile(tileImages[5], [4, 1, 1, 5]);
37-
tiles[6] = new Tile(tileImages[6], [1, 2, 1, 2]);
38-
tiles[7] = new Tile(tileImages[7], [3, 2, 3, 2]);
39-
tiles[8] = new Tile(tileImages[8], [3, 1, 2, 1]);
40-
tiles[9] = new Tile(tileImages[9], [2, 2, 1, 2]);
41-
tiles[10] = new Tile(tileImages[10], [2, 2, 2, 2]);
42-
tiles[11] = new Tile(tileImages[11], [2, 2, 1, 1]);
43-
tiles[12] = new Tile(tileImages[12], [1, 2, 1, 2]);
44-
tiles[13] = new Tile(tileImages[13], [5, 0, 5, 2]);
19+
tiles[0] = new Tile(tileImages[0], ["AAA", "AAA", "AAA", "AAA"]);
20+
tiles[1] = new Tile(tileImages[1], ["BBB", "BBB", "BBB", "BBB"]);
21+
tiles[2] = new Tile(tileImages[2], ["BBB", "BCB", "BBB", "BBB"]);
22+
tiles[3] = new Tile(tileImages[3], ["BBB", "BDB", "BBB", "BDB"]);
23+
tiles[4] = new Tile(tileImages[4], ["ABB", "BCB", "BBA", "AAA"]);
24+
tiles[5] = new Tile(tileImages[5], ["ABB", "BBB", "BBB", "BBA"]);
25+
tiles[6] = new Tile(tileImages[6], ["BBB", "BCB", "BBB", "BCB"]);
26+
tiles[7] = new Tile(tileImages[7], ["BDB", "BCB", "BDB", "BCB"]);
27+
tiles[8] = new Tile(tileImages[8], ["BDB", "BBB", "BCB", "BBB"]);
28+
tiles[9] = new Tile(tileImages[9], ["BCB", "BCB", "BBB", "BCB"]);
29+
tiles[10] = new Tile(tileImages[10], ["BCB", "BCB", "BCB", "BCB"]);
30+
tiles[11] = new Tile(tileImages[11], ["BCB", "BCB", "BBB", "BBB"]);
31+
tiles[12] = new Tile(tileImages[12], ["BBB", "BCB", "BBB", "BCB"]);
4532

4633
for (let i = 2; i < 14; i++) {
4734
for (let j = 1; j < 4; j++) {
@@ -59,6 +46,10 @@ function setup() {
5946
tile.analyze(tiles);
6047
}
6148

49+
startOver();
50+
}
51+
52+
function startOver() {
6253
// Create cell for each spot on the grid
6354
for (let i = 0; i < DIM * DIM; i++) {
6455
grid[i] = new Cell(tiles.length);
@@ -130,6 +121,10 @@ function draw() {
130121
const cell = random(gridCopy);
131122
cell.collapsed = true;
132123
const pick = random(cell.options);
124+
if (pick === undefined) {
125+
startOver();
126+
return;
127+
}
133128
cell.options = [pick];
134129

135130
const nextGrid = [];

tile.js

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,13 @@
1+
function reverseString(s) {
2+
let arr = s.split("");
3+
arr = arr.reverse();
4+
return arr.join("");
5+
}
6+
7+
function compareEdge(a, b) {
8+
return a == reverseString(b);
9+
}
10+
111
class Tile {
212
constructor(img, edges) {
313
this.img = img;
@@ -12,19 +22,19 @@ class Tile {
1222
for (let i = 0; i < tiles.length; i++) {
1323
let tile = tiles[i];
1424
// UP
15-
if (tile.edges[2] == this.edges[0]) {
25+
if (compareEdge(tile.edges[2], this.edges[0])) {
1626
this.up.push(i);
1727
}
1828
// RIGHT
19-
if (tile.edges[3] == this.edges[1]) {
29+
if (compareEdge(tile.edges[3], this.edges[1])) {
2030
this.right.push(i);
2131
}
2232
// DOWN
23-
if (tile.edges[0] == this.edges[2]) {
33+
if (compareEdge(tile.edges[0], this.edges[2])) {
2434
this.down.push(i);
2535
}
2636
// LEFT
27-
if (tile.edges[1] == this.edges[3]) {
37+
if (compareEdge(tile.edges[1], this.edges[3])) {
2838
this.left.push(i);
2939
}
3040
}

0 commit comments

Comments
 (0)