【发布时间】:2021-10-05 19:48:52
【问题描述】:
我遇到了一个问题,我的海龟对象不是在彼此旁边绘制汽车长度,而是在彼此之上绘制。我已经尝试了几乎所有我能想到的循环变体,但尽管它可能是如此简单,但还是无法弄清楚。除此之外,我还无法弄清楚如何让用户输入的汽车名称出现在他们各自的汽车上方。 这是它应该看起来的样子: https://i.stack.imgur.com/rubG3.png
import turtle
import random
turtle.setup(575,575)
pen = turtle.Turtle()
turtle.bgcolor("white")
pen.speed(0)
pen.pensize(2)
pen.hideturtle()
colorCar = []
carName = []
# ask user how many cars
carNum = int(turtle.numinput("cars", "Enter how many cars you have: ", 1, 1, 10))
# respective values (add more variables if needed for sizing)
widthPadding = turtle.window_width()/carNum
width= widthPadding * .8
padding = widthPadding * .1
length = width * 2
# controlls how long horizontally
carWidth = width * 0.5
wheelWidth = carWidth * .1
# controls how long vertically
carLength = width * 0.2
for row in range(carNum):
x = - turtle.window_width()/2 + carWidth
y = - turtle.window_height()/2 + padding + row * widthPadding
# ask user for color of car
for i in range(carNum):
color = turtle.textinput("car color", f"Enter Color of Car {i +1}").lower().strip()
colorCar.append(color)
# ask for car name
name = turtle.textinput("car name", f"Enter Name of Car {i +1}").lower().strip()
carName.append(name)
for row in range(carNum):
pen.up()
pen.setpos(x + (width - length)/2 + padding, y)
pen.down()
#draw cars
pen.color("black")
pen.pensize(4)
pen.fillcolor(color)
pen.begin_fill()
for i in range(4):
if i%2== 0:
pen.forward(carWidth)
else:
pen.forward(carLength)
pen.left(90)
pen.end_fill()
# write name above car
turtle.write(name)
turtle.done()
【问题讨论】:
标签: python turtle-graphics python-turtle