En el ejercicio donde se tiene que dar animación al circulo, no se si se percataron que desaparece el circulo cuando llega al final del canvas, esto se debe a que el programa se siga ejecutando, es decir que el circulo se mueve infinitamente hacia la derecha, si quieren que cuando llegue al final del canvas se detenga y se quede ahí, pueden agregar un clearInterval(), yo estoy trabajando con un canvas de 600px * 600px.
let x = 30;
let intervalId;
function moverCirculo() {
limpiarPantalla();
dibujarCirculo(x, 30, 30);
console.log(`imprimiendo ${x} vez`);
x++;
if (x > 570) {
clearInterval(intervalId);
}
}
intervalId = setInterval(moverCirculo, 1);