File tree Expand file tree Collapse file tree 1 file changed +54
-0
lines changed Expand file tree Collapse file tree 1 file changed +54
-0
lines changed Original file line number Diff line number Diff line change
1
+ import threading
2
+ import queue
3
+ import turtle
4
+
5
+ # Create the queue for shapes
6
+ shape_queue = queue .Queue ()
7
+
8
+ def create_turtle ():
9
+ return turtle .Turtle ()
10
+
11
+ def draw_rectangle ():
12
+ turtle = create_turtle ()
13
+ turtle .color ("purple" )
14
+ turtle .penup ()
15
+ turtle .goto (- 100 , 0 )
16
+ turtle .pendown ()
17
+ turtle .begin_fill ()
18
+ for i in range (4 ):
19
+ turtle .forward (100 )
20
+ turtle .left (90 )
21
+ turtle .end_fill ()
22
+
23
+ def draw_circle ():
24
+ turtle = create_turtle ()
25
+ turtle .color ("pink" )
26
+ turtle .penup ()
27
+ turtle .goto (100 , 0 )
28
+ turtle .pendown ()
29
+ turtle .begin_fill ()
30
+ turtle .circle (50 )
31
+ turtle .end_fill ()
32
+
33
+ def worker ():
34
+ while True :
35
+ shape , * args = shape_queue .get ()
36
+ if shape == 'rectangle' :
37
+ draw_rectangle (* args )
38
+ elif shape == 'circle' :
39
+ draw_circle (* args )
40
+ shape_queue .task_done ()
41
+
42
+ # Start the worker thread
43
+ thread = threading .Thread (target = worker , daemon = True )
44
+ thread .start ()
45
+
46
+ # Queue up the shapes
47
+ shape_queue .put (('rectangle' ,))
48
+ shape_queue .put (('circle' ,))
49
+
50
+ # Wait for the shapes to be drawn
51
+ shape_queue .join ()
52
+
53
+ # Exit the program
54
+ turtle .done ()
You can’t perform that action at this time.
0 commit comments