2017-08-16 10 views
1

私は2つのランダムな場所で拡大する四角形を作成する次のコードを書いた。関数f(正方形、秒)を書いて、ユーザがf(5,10)を入力すると、5が形成されるまで10秒ごとに新しい正方形が形成されるようにしたいと思います。タイミングタートルの動きに問題がある

私は新しい正方形がまだ形成されている間に始めることができないようなものを見つけることはできません。私は、以下のコードのように、同時に2つのフォームを作成することも、1つを完了させることも、別のフォームを作成することもできます。助けて?

import sys 
sys.setExecutionLimit(1000000) 
import turtle 
import random 
wn = turtle.Screen() 
#Creates alex the turtle 
alex = turtle.Turtle() 
alex.color('blue') 
alex.pensize(3) 
alex.ht() 
alex.penup() 
#creates bob the turtle 
bob = turtle.Turtle() 
bob.color('blue') 
bob.pensize(3) 
bob.ht() 
bob.penup() 

#Sets variables so that alex starts in a random location 
a=random.randrange(360) 
b=random.randrange(360) 
x=random.randrange(50,150) 
y=random.randrange(50,150) 
#Sets variables so that bob starts in a random location 
l=random.randrange(360) 
m=random.randrange(360) 
n=random.randrange(50,150) 
o=random.randrange(50,150) 
#Moves alex to his random starting location 
alex.speed(100) 
alex.left(a) 
alex.forward(x) 
alex.left(b) 
alex.forward(y) 
alex.pendown() 
#Moves bob to his random starting location 
bob.speed(100) 
bob.left(l) 
bob.forward(n) 
bob.left(m) 
bob.forward(o) 
bob.pendown() 

#Draws the 2 squares 
for i in range(1,500): 
    alex.forward(i) 
    alex.left(90) 
    bob.forward(i) 
    bob.left(90) 

答えて

1

必要な機能には、独立した実行スレッドが必要です。

import time 
import threading 

def draw_square(): 
    # Draw a square in a random place 
    length = random.randrange(360) 
    width = random.randrange(360) 
    x_pos = random.randrange(50,150) 
    y_pos = random.randrange(50,150) 

    # Continue with your square-drawing logic; 
    # you already know how to do this. 

while True: 
    threading.thread(draw_square) 
    time.sleep(10) 
:あなたはこのようなロジックをお勧めしますマルチスレッド packagetutorial

で作業する必要があります

関連する問題