Español   Ejemplos: Recursividad.

Cuadrados girando

Dibujamos un cuadrado grande; giramos un poco y dibujamos otro cuadrado con el lado un poco más pequeño; giramos un poco y ...

para empezar
  nuevo cruces 90
fin

para nuevo
# Inicializamos pantalla, lapiz, tortuga, ...
  reponetodo pontamañopantalla [400 400]
  poncolorpapel negro poncolorlapiz verde subelapiz ocultatortuga
fin

para cuadrado :lado
  si :lado < 12 [alto]
  subelapiz retrocede :lado/2 giraderecha 90 retrocede :lado/2 bajalapiz
  poncolorlapiz hue 1.4*:lado
  repite 4 [avanza :lado giraizquierda 90]
  subelapiz avanza :lado/2 giraizquierda 90 avanza :lado/2 bajalapiz
  giraizquierda 4
  cuadrado :lado-8
fin

para hue :angulo
  haz "red redondea 127*(1+coseno :angulo)
  haz "green redondea 127*(1+coseno(120+:angulo))
  haz "blue redondea 127*(1+coseno(240+:angulo))
  devuelve frase lista :red :green :blue
fin


Para mayor recursividad, cambia el condicional en la línea:

si :lado < 4 [alto]
Probar este programa ahora

Procedimiento a ejecutar:
empezar