es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo se crea un bucle condicional con onkeypress()?

Estoy trabajando en un proyecto de Python para mi clase de introducción, donde quiero crear una tormenta de nieve con el módulo turtle. Hasta ahora, he logrado hacer que aparezca un “copo de nieve” en cada pulsación de tecla, pero no estoy seguro de cómo convertirlo en un bucle condicional en el que, al hacer clic, se vuelva verdadero y siga repitiéndose sin tener que hacer clic nuevamente.

Aquí está el código que tengo hasta ahora:

def snowing(x, y):
    w.speed(0)
    flake_size = randint(1, 5)
    rx = randint(-250, 250)
    ry = randint(-300, 300)
    w.color(colours[5])
    w.setposition(rx, ry)
    w.pendown()
    w.begin_fill()
    w.circle(flake_size)
    w.end_fill()
    w.penup()

listen()
onscreenclick(snowing, add=None)
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para hacer que la función “snowing” sea un bucle condicional que continúe generando copos de nieve después del primer clic, puedes utilizar un bucle “while” que verifique si una variable llamada “isTrue” es verdadera. Inicialmente, “isTrue” debe estar establecida en “False”, pero cuando se hace clic en la pantalla, se convierte en “True” y el bucle seguirá ejecutándose hasta que el usuario salga del programa.

    Aquí está el código actualizado:

    isTrue = False
    
    def snowing(x, y):
        global isTrue
        isTrue = True # establecer "isTrue" en "True" en el primer clic
        while isTrue: # bucle mientras "isTrue" sea "True"
            w.speed(0)
            flake_size = randint(1, 5)
            rx = randint(-250, 250)
            ry = randint(-300, 300)
            w.color(colores[5])
            w.setposition(rx, ry)
            w.pendown()
            w.begin_fill()
            w.circle(flake_size)
            w.end_fill()
            w.penup()
    
    listen()
    onscreenclick(snowing, add=None)
    

    Con este código, la función “snowing” seguirá generando copos de nieve después del primer clic sin necesidad de clics adicionales. Para detener el bucle y salir del programa, el usuario puede presionar la tecla “escape” o cerrar la ventana.

Comments are closed.