generateSierpinskiCarpet = function(context){
const w = context.canvas.width,
h = context.canvas.height;
let squares = [];
squares.push(new Square(context, 0, 0, w, h));
for(let i = 0; i < sierpinski_depth; i++){
let next_squares = [];
for(let square of squares){
const side = square.side/3;
const [px, py] = [square.x, square.y];
next_squares.push(new Square(context, px, py, side));
next_squares.push(new Square(context, px + side, py, side));
next_squares.push(new Square(context, px + 2 * side, py, side));
next_squares.push(new Square(context, px, py + side, side));
next_squares.push(new Square(context, px + 2 * side, py + side, side));
next_squares.push(new Square(context, px, py + 2 * side, side));
next_squares.push(new Square(context, px + side, py + 2 * side, side));
next_squares.push(new Square(context, px + 2 * side, py + 2* side, side));
}
squares = squares.concat(next_squares);
}
for(let square of squares){
square.show();
}
}