<-- Back to list of examples

""" 
 Dibujaremos rectángulos de forma recursiva.
 
 Sample Python/Pygame Programs
 Simpson College Computer Science
 http://programarcadegames.com/
 http://simpson.edu/computer-science/

"""
import pygame
 
# Definimos algunos colores
NEGRO = (0, 0, 0)
BLANCO = (255, 255, 255)
 
def dibujo_recursivo(x, y, largo, alto):
    """ Función para dibujar recursivamente rectángulos. """
    pygame.draw.rect(pantalla, NEGRO, 
                     [x,y,largo,alto],
                     1)

    # Es el rectángulo lo bastante largo como para volver a dibujarlo?
    if(largo > 14):
        # Reducimos
        x += largo * .1
        y += alto * .1
        largo *= .8
        alto *= .8
        # Lo dibujamos otra vez recursivamente
        dibujo_recursivo(x, y, largo, alto)
    
pygame.init()
  
# Establecemos el alto y largo de la pantalla
dimensiones = [700, 500]
pantalla = pygame.display.set_mode(dimensiones)
 
pygame.display.set_caption("Mi Juego")
 
# Iteramos hasta que el usuario haga click sobre el botón de cerrar
hecho = False
 
# Usado para gestionar cuán rápido se actualiza la pantalla
reloj = pygame.time.Clock()
 
# -------- Bucle Principal del Programa  -----------
while not hecho:
    for evento in pygame.event.get(): 
        if evento.type == pygame.QUIT:
            hecho = True  
            
    # Limpia la pantalla y establece su color de fondo
    pantalla.fill(BLANCO)
 
    # TODO EL CÓDIGO DE DIBUJO DEBERÍA IR DEBAJO DE ESTE COMENTARIO
    dibujo_recursivo(0, 0, 700, 500)
    # TODO EL CÓDIGO DE DIBUJO DEBERÍA IR ENCIMA DE ESTE COMENTARIO
     
    # # Avancemos y actualicemos la pantalla con lo que hemos dibujado.
    pygame.display.flip()

    # Limitamos a 60 fotogramas por segundo
    reloj.tick(60)
     
# Pórtate bien con el IDLE. Si nos olvidamos de esta línea, el programa se 'colgará'
# en la salida.
pygame.quit()