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.

Debería crear 3 cuadrados, ¿por qué no lo hace?

Debería crear 3 cuadrados en 3 puntos (posición inicial) pero en su lugar crea un triángulo que además tiene el color incorrecto.

El código es llamado desde el archivo principal:

Import turtle como t
De la serpiente importar serpiente
importar tiempo

Pantalla= t.Pantalla()
pantalla.título(‘Bienvenido a mi juego’)
pantalla.bgcolor(‘blanco’)

en_juego = Cierto
pantalla.escuchar()
mientras en_juego == True :
pantalla.update()
tiempo.dormir(0.1)

lider_de_serpiente = serpiente().crear_serpiente()

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Al ver el código proporcionado, hay algunas cosas que podrían estar causando el problema de crear un triángulo en lugar de tres cuadrados:

    1. La forma de tortuga utilizada es ‘Cuadrado’, pero la forma predeterminada es ‘flecha’. Esto significa que cuando se crea la tortuga, inicialmente aparecerá como una flecha hasta que la forma se cambie.
    2. El movimiento de los segmentos en el método ‘move’ está haciendo que cada segmento se mueva hacia el segmento anterior, creando una línea de tortugas en lugar de cuadrados separados.

    Para crear tres cuadrados en las posiciones iniciales proporcionadas, revise el método ‘create_snake’ de la siguiente manera:

    def create_snake(self):
        for position in starting_position:
            new_segment = t.Turtle(shape='square')
            new_segment.color('red')
            new_segment.penup()
            new_segment.goto(position)
            self.segments.append(new_segment)
    

    Esto asegurará que cada segmento se cree inicialmente como un cuadrado. Además, para mover cada segmento de forma independiente en lugar de como una línea, revise el método ‘move’ de la siguiente manera:

    def move(self):
        for seg_num in range(len(self.segments) - 1, 0, -1):
            new_x = self.segments[seg_num - 1].xcor()
            new_y = self.segments[seg_num - 1].ycor()
            self.segments[seg_num].goto(new_x, new_y)
        self.segments[0].forward(20)
    

    Esto revisa el movimiento para mover solo el primer segmento hacia adelante en 20 unidades, mientras que el resto se queda en sus posiciones actuales.

    Con estas revisiones, el problema de crear un triángulo en lugar de tres cuadrados debería resolverse.

Comments are closed.