Создание 5 шаров с использованием графики черепахи и взаимодействие их с краем экрана - PullRequest
0 голосов
/ 29 февраля 2020

Я относительно новичок в программировании и пытаюсь выяснить, как заставить это работать. Я сделал большую часть этого (я думаю). Я просто не знаю, как заставить две функции взаимодействовать друг с другом. Пожалуйста, ничего сложного, я все еще учусь и хотел бы работать в рамках моего собственного типа кодирования.

Вот мой код

import turtle
import random

win = turtle.Screen()
win.setup(width=500, height=500, startx=80, starty=80)
win.title("Balls Bounce")
win.bgcolor("white")


def ball():
    x = turtle.Turtle(shape="circle")
    x.penup()
    x.showturtle()
    x.setheading(random.randrange(360))
    x.forward(5)


def falling():
    x = turtle.position()[0]
    y = turtle.position()[1]
    if x < -250 or x > 250 or y < -250 or y > 250:
        turtle.forward(-5)
        turtle.setheading(random.randrange(360))
        turtle.forward(5)


for i in range(5):
    ball()


while True:
    falling()

1 Ответ

0 голосов
/ 29 февраля 2020

Сначала вы должны вернуть мяч, созданный в ball() и добавить в список

, а затем использовать этот список в falling() для перемещения шаров.

import turtle
import random

# --- functions ---

def ball():
    x = turtle.Turtle(shape="circle")
    x.penup()
    x.showturtle()
    x.setheading(random.randrange(360))
    x.forward(5)
    return x  # <-- return ball

def falling():
    for b in balls:  # <-- use ball from list

        b.forward(5)

        x = b.position()[0]
        y = b.position()[1]
        if x < -250 or x > 250 or y < -250 or y > 250:
            b.forward(-5)
            b.setheading(random.randrange(360))
            b.forward(5)

# --- main ---

win = turtle.Screen()
win.setup(width=500, height=500, startx=80, starty=80)
win.title("Balls Bounce")
win.bgcolor("white")

balls = []
for i in range(5):
    b = ball()
    balls.append(b)  # <-- keep ball on list

while True:
    falling()
...