Referente a função desenhaQuadrado não consegui compreender a lógica das medidas das coordenadas até certo ponto,
var y = 50;
desenhaQuadrado(50, y, 100, 'green');
desenhaQuadrado(150, y, 100, 'green');
desenhaQuadrado(250, y, 100, 'green');
desenhaQuadrado(350, y, 100, 'white');
se o primeiro quadrado o "x" é igual a 50 partindo dessa coordenada e o "y" também por se tratar de um quadrado, quando chega na parte do tamanho ele se unifica sendo igual a 100 (no caso o ponto de partida 50 + 50 do 1º quadrado) , o 2º aumenta com + 50 que é referente ao largura do quadrado ficando com "x" igual a 150, assim a minha dúvida se refere a próxima coordenada do 3º quadrado por que é igual a 250? No caso cada lado é igual a 50 o outro quadrado ao lado também possui a mesma medida e assim sucessivamente, no meu entendimento o próximo "x" do 3º quadrado seria igual a 200, pois 150 + 50 é igual a 200, não entendi a lógica.