[英]call random values for drawing shapes and removing shapes
我的程序使用 Turtle 來繪制形狀。 它顯示以下菜單:
如果用戶輸入“4”,程序應該按照它們在列表中的順序繪制形狀。
[問題] :所以它應該畫一個圓和一個隨機值的矩形。 如果用戶輸入“3”,我在嘗試這樣做以及刪除形狀時遇到問題。 我留下了一個例子,說明我使用隨機的 function 來繪制圓形。
另外,如果選擇 == 3(刪除形狀),我的代碼應該是什么?
非常感謝所有幫助。 謝謝!
import turtle
import random
def circle():
turtle.pensize(1)
turtle.penup()
turtle.goto(x, yCoordinate)
turtle.pendown()
turtle.color(color)
turtle.circle(radius)
turtle.hideturtle()
turtle.done()
def rectangle():
turtle.penup()
turtle.goto(xRectangle - width / 2, yRectangle - height / 2)
turtle.pendown()
turtle.color(colorRectangle)
turtle.goto(xRectangle - width / 2, yRectangle + height / 2)
turtle.goto(xRectangle + width / 2, yRectangle + height / 2)
turtle.goto(xRectangle + width / 2, yRectangle - height / 2)
turtle.goto(xRectangle - width / 2, yRectangle - height / 2)
turtle.hideturtle()
turtle.done()
def remove():
pass
def shapes():
turtle.pensize(1)
turtle.penup()
turtle.goto(x.random, yCoordinate.random)
turtle.pendown()
turtle.color(random)
turtle.circle(radius.random)
COMMANDS = [None, circle, rectangle, remove, shapes, exit]
ABORT = len(COMMANDS) - 1
PROMPT = "1. Draw a circle\n2. Draw a rectangle\n3. Remove Shapes\n4. Draw Shapes\n5. Quit"
while True:
choice = turtle.numinput("Pick a number", prompt=PROMPT, default=ABORT, minval=1, maxval=ABORT)
if choice == 1:
x = int(input("Enter the X Coordinate: "))
yCoordinate = int(input("Enter the Y Coordinate: "))
radius = int(input("Enter the Radius: "))
color = str(input("Enter desired Color (choose red, yellow, blue or green): "))
xCoordinate = (x - radius)
if choice == 2:
xRectangle = int(input("Enter the X Coordinate: "))
yRectangle = int(input("Enter the Y Coordinate: "))
height = int(input("Enter Height: "))
width = int(input("Enter Width: "))
colorRectangle = str(input("Enter desired Color (choose red, yellow, blue or green): "))
if choice == 3:
print(1)
if choice == 4:
print(shapes)
if choice is None:
choice = ABORT
else:
choice = int(choice)
if 1 <= choice <= ABORT:
COMMANDS[choice]()
turtle.mainloop() # never reached
您的函數缺少參數,使用“elif”也是一個好習慣,它減少了您進行的檢查次數,也將減少邏輯錯誤
另外,請務必參考文檔以獲取語法幫助! https://docs.python.org/3.3/library/turtle.html?highlight=turtle#turtle.clear
我對您的代碼進行了一些修改以實現您所需要的
import turtle
import random
# Create a turtle object
myturtle = turtle.Turtle()
def circle(x, yCoordinate, radius, color):
myturtle.pensize(1)
myturtle.penup()
myturtle.goto(x, yCoordinate)
myturtle.pendown()
myturtle.pencolor(color)
myturtle.circle(10)
myturtle.hideturtle()
def rectangle(xRectangle, yRectangle, width, height, colorRectangle):
myturtle.penup()
myturtle.goto(xRectangle - width / 2, yRectangle - height / 2)
myturtle.pendown()
myturtle.pencolor(colorRectangle)
myturtle.goto(xRectangle - width / 2, yRectangle + height / 2)
myturtle.goto(xRectangle + width / 2, yRectangle + height / 2)
myturtle.goto(xRectangle + width / 2, yRectangle - height / 2)
myturtle.goto(xRectangle - width / 2, yRectangle - height / 2)
myturtle.hideturtle()
def rremove():
myturtle.clear()
def shapes():
myturtle.pensize(1)
myturtle.penup()
myturtle.goto(x.random, yCoordinate.random)
myturtle.pendown()
myturtle.color(random)
myturtle.circle(radius.random)
COMMANDS = [None, circle, rectangle, rremove, shapes, exit]
ABORT = len(COMMANDS) - 1
PROMPT = "1. Draw a circle\n2. Draw a rectangle\n3. Remove Shapes\n4. Draw Shapes\n5. Quit"
COLORS = ['red', 'yellow', 'blue', 'green']
while True:
choice = turtle.numinput("Pick a number", prompt=PROMPT, default=ABORT, minval=0, maxval=ABORT)
choice = int(choice)
if choice == 1:
x = int(input("Enter the X Coordinate: "))
yCoordinate = int(input("Enter the Y Coordinate: "))
radius = int(input("Enter the Radius: "))
color = str(input("Enter desired Color (choose red, yellow, blue or green): "))
xCoordinate = (x - radius)
circle(x, yCoordinate, radius, color)
elif choice == 2:
xRectangle = int(input("Enter the X Coordinate: "))
yRectangle = int(input("Enter the Y Coordinate: "))
height = int(input("Enter Height: "))
width = int(input("Enter Width: "))
colorRectangle = str(input("Enter desired Color (choose red, yellow, blue or green): "))
rectangle(xRectangle, yRectangle, width, height, colorRectangle)
elif choice == 3:
COMMANDS[choice]()
elif choice == 4:
#Here you can adjust the lower and upper bounds of the random number
x, yCoordinate, color, radius = random.randint(10,40), random.randint(10,200), random.choice(COLORS), random.randint(10,200)
COMMANDS[1](x, yCoordinate, radius,color)
print("Drew a circle")
xRectangle, yRectangle, width, height, colorRectangle = random.randint(10,200), random.randint(10,200), random.randint(10,200),random.randint(10,200), random.choice(COLORS)
COMMANDS[2](xRectangle, yRectangle, width, height, colorRectangle)
print("Drew a rectangle")
elif choice == 5:
COMMANDS[choice]()
else:
print("Invalid, try again...")
continue
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.