如何让这个海龟问题正确递增?

问题描述 投票:0回答:1

这里是编码和 Python 的完全初学者,所以请耐心等待。我正在尝试解决这个问题:

精灵是一种简单的蜘蛛形状的东西,有n条腿从中心点伸出。每条腿之间的角度为 360 / n 度。

我的移动变量遇到问题。我可以让它适用于单个值,但我希望它适用于用户输入的任何值。

import turtle
wn = turtle.Screen()
sprite = turtle.Turtle()

str_legs = input("How many legs does the sprite have?")
print(int(str_legs))

move = (360/int(str_legs)) 
for s in range (int(str_legs)): 
    sprite.fd(100)
    sprite.home()
    sprite.right(move)    
    move = ?

wn.exitonclick()
python for-loop range logic turtle-graphics
1个回答
0
投票

问题是

home()
总是将海龟置于相同的航向和位置(面向右侧)。相反,尝试找出如何返回家但保持乌龟开始当前腿时的航向。

import turtle

legs = 8
leg_size = 100
degrees_per_turn = 360 / legs

sprite = turtle.Turtle()

for _ in range(legs):
    sprite.forward(leg_size)
    sprite.backward(leg_size)
    sprite.right(degrees_per_turn)

turtle.exitonclick()

如果您想坚持

home()
,您可以将一圈数量乘以到目前为止已完成的圈数:

# ...

for i in range(legs):
    sprite.forward(leg_size)
    sprite.home()
    sprite.right(degrees_per_turn * (i + 1))

# ...
© www.soinside.com 2019 - 2024. All rights reserved.