So, In my code, The circles sometimes fill up tiles that have been occupied by the Squares.

As seen here:

The relevant code is as follows

```
function draw() {
noStroke();
// These make a sort-of grid to be filled with things
for (let x = 0; x < width; x += tw) {
for (let y = 0; y < height; y += th) {
const randomTile = random(0, 1);
const randomDraw = random(0, 1);
if (randomTile > 0.5) {
drawTriangles(x, y, randomDraw);
} else if (randomTile <= 0.5) {
drawCircles(x, y, tw, th, randomDraw);
}
}
}
}
function drawCircles(x, y, w, h, side) {
if (side > 0.5) {
fill(getFillColor());
arc(x, y + 100, w, h, HALF_PI - TWO_PI, HALF_PI - PI);
} else if (side <= 0.5) {
fill(getFillColor());
arc(x, y + 100, w, h, PI + HALF_PI, TWO_PI + HALF_PI);
}
}
function drawTriangles(x, y, direction) {
// Direction > .5 draws line ul to lr
// Direction < .5 draws line lr to ur
// Define triangle points
let ulx = x;
let uly = y;
let llx = x;
let lly = y + th;
let urx = x + tw;
let ury = y;
let lrx = x + tw;
let lry = y + th;
// Draw triangles by direction
if (direction > 0.5) {
fill(getFillColor());
triangle(ulx, uly, llx, lly, urx, ury);
fill(getFillColor());
triangle(llx, lly, urx, ury, lrx, lry);
} else if (direction <= 0.5) {
fill(getFillColor());
triangle(ulx, uly, llx, lly, lrx, lry);
fill(getFillColor());
triangle(ulx, uly, urx, ury, lrx, lry);
}
}
```