Buenas tardes, dejo mi solución distinta a la del instructor.
<canvas width="600" height="400"></canvas>
<script>
var pantalla = document.querySelector("canvas");
var pincel = pantalla.getContext("2d");
pincel.fillStyle = "lightgray";
pincel.fillRect(0, 0, 600, 400);
function hacerCircunferencias(x,y,radio) {
pincel.fillStyle = "blue";
pincel.beginPath();
pincel.arc(x,y,radio,0,2*Math.PI);
pincel.fill(); //rellena la circunferencia
}
function limpiarPantalla() {
pincel.clearRect(0,0,600,400);
}
function actualizarPantalla() {
limpiarPantalla();
hacerCircunferencias(contador,20,10);
if(acumulador<600){
if(acumulador == contador) {
acumulador++;
contador++;
}
} else {
contador--;
if(contador == 0) {
acumulador = 0;
}
}
}
var contador = 0;
var acumulador = 0;
setInterval(actualizarPantalla,5);
</script>