如何在python turtle模块中移动戳记?
到目前为止,这是我的代码:
import turtle
def draw_start():
turtle.pu()
turtle.setpos(-350,300)
turtle.pendown()
turtle.right(90)
turtle.forward(520)
def draw_finish():
turtle.speed(15)
turtle.pu()
for i in range(18):
turtle.setpos(200,(300-(i*30)))
square()
for j in range(18):
turtle.setpos(215,(285-(j*30)))
square()
def stamp_turtle(x,y,color):
turtle.pu()
turtle.setheading(0)
turtle.shape("turtle")
turtle.color(color)
turtle.setpos(x,y)
stamp_list.append(turtle.stamp())
def square():
turtle.pu()
turtle.fill(True)
for i in range(4):
turtle.forward(15)
turtle.right(90)
turtle.fill(False)
print "Welcome to Turtle Racing : "
number_of_turtles = int(raw_input("How many turtles (between 3 and 6) : "))
bet_amount = int(raw_input("How much do you want to bet? $ "))
bet_turtle = raw_input("Which turtle (1 to 5)? ")
color_list=["red","blue","green","brown","yellow","purple"]
stamp_list=[]
draw_start()
draw_finish()
for i in range(number_of_turtles):
stamp_turtle(-370,280-i*90,color_list[i])`
答案 0 :(得分:0)
移动乌龟图章:擦除它,调用penup()并在其他地方重新盖章:
import turtle
import time
a = turtle.Turtle()
a.penup()
a.goto(0, -200)
a.pendown()
a.stamp()
time.sleep(1)
a.clear()
a.penup()
a.goto(10,10)
a.stamp()
邮票从0,200开始然后消失并再次出现在10,10
答案 1 :(得分:0)
答案是你不移动邮票,你移动海龟!邮票必须被移除并重新安置,而海龟可以在不重绘的情况下移动:
import random
import turtle
STAMP_SIZE = 20
SQUARE_SIZE = 15
FINISH_LINE = 200
COLOR_LIST = ['red', 'blue', 'green', 'brown', 'yellow', 'purple']
def draw_start():
turtle.speed('fastest')
turtle.penup()
turtle.setpos(-350, 300)
turtle.pendown()
turtle.right(90)
turtle.forward(520)
def draw_finish():
turtle.shape('square')
turtle.shapesize(SQUARE_SIZE / STAMP_SIZE)
turtle.penup()
for i in range(18):
turtle.setpos(FINISH_LINE, (300 - (i * SQUARE_SIZE * 2)))
turtle.stamp()
for j in range(18):
turtle.setpos(FINISH_LINE + SQUARE_SIZE, ((300 - SQUARE_SIZE) - (j * SQUARE_SIZE * 2)))
turtle.stamp()
turtle.hideturtle()
def move_turtle(who):
who.forward(random.randint(1, 10))
if who.xcor() < FINISH_LINE:
turtle.ontimer(lambda who=who: move_turtle(who), 50)
print('Welcome to Turtle Racing!')
number_of_turtles = int(input('How many turtles (between 3 and 6): '))
draw_start()
draw_finish()
turtle_list = []
for idx in range(number_of_turtles):
racer = turtle.Turtle('turtle', visible=False)
racer.speed('fastest') # affects drawing speed, not forward motion
racer.penup()
racer.setpos(-350 - STAMP_SIZE, 280 - idx * 90)
racer.color(COLOR_LIST[idx])
racer.showturtle()
turtle_list.append(racer)
for racer in turtle_list:
turtle.ontimer(lambda who=racer: move_turtle(who), 100)
turtle.exitonclick()
冲压加速的地方在于你的终点线,如果你试图绘制它需要更长的时间。
请注意,尽管您的原始代码是Python 2,但我的答案是Python 3,因此如果您仍在使用旧版本,则可能需要调整一些内容。