Meta: Utiliza recursión para limitar el tamaño de la espiral.
Vocabulario: if, > (greater than sign), stop
to spiral :length
pd
if :length > howbig [stop]
setc whatcolor
setpensize howthick
fd :length rt angle
spiral :length + howtight
end
to reset
cg
end
Notas Cuando usamos spiral como un comando en el procedimiento spiral, eso le indica a la computadora que empiece a realizar el procedimiento nuevamente. (Un procedimiento que se llama a si mismo dentro del procedimiento es un procedimiento recursivo). La computadora iniciará nuevamente el procedimiento por siempre a menos que le digamos que se detenga.
- En lugar de decir el número de giros como lo hicimos en Espirales 4, crearemos un control howbig para ponerle límite a la longitud de las líneas.
- En el procedimiento spiral. if :length > howbig [stop] significa: "Si el valor de la variable length es mayor que el número del control howbig, detén el procedimiento".
Cada vez que la computadora corre el procedimiento spiral, revisa si la condición del comando if se cumple. Si se cumple, el procedimiento se detiene. Si no se cumple, el procedimiento seguirá corriendo.
- Spiral :length + howtight significa: "Empieza a correr el procedimiento spiral nuevamente, pero incrementa el valor de length en el número indicado por el control howtight".
Cuando la llamada recursiva se realiza al final del procedimiento, se llama recursión por la cola.
- Siempre debes guardar tu trabajo antes de intentar un procedimiento recursivo, en caso de que no se detenga cuando tú supones. También, siempre puedes interrumpir un proceso seleccionando "stop all" en el menú Edit.
¿Qué pasa si?
Intenta diferentes valores para los controles angle, howtight, y howbig.
Desafío
¿Puedes poner los controles para que la tortuga dibuje espirales que lleguen hasta la parte de arriba y la parte de abajo de la página del proyecto sin sobrepasarse?
|