ランダムに動くタートルを半径 50 の円の内側に拘束し、円の中心を (0, 0) にするにはどうすればよいでしょうか? したがって、タートルが現在位置 (x, y) にある場合、中心からの距離は math.sqrt(x ** 2 + y ** 2) です。タートルの中心からの距離が 50 を超えるときはいつでも、向きを変えて続けます。画面サイズで動作するようにコードを取得しましたが、math.sqrt(x ** 2 + y ** 2) をどこに配置すれば、円内に拘束されるようになりますか? これまでのコードは次のとおりです。
import turtle, random, math
def bounded_random_walk(num_steps, step_size, max_turn):
turtle.reset()
width = turtle.window_width()
height = turtle.window_height()
for step in range(num_steps):
turtle.forward(step_size)
turn = random.randint(-max_turn, max_turn)
turtle.left(turn)
x, y = turtle.position()
if -width/2 <= x <= width/2 and -height/2 <= y <= height/2:
pass
else: # turn around!
turtle.left(180)
turtle.forward(step_size)
このコードは、画面内のタートルには機能しますが、円内には機能しません。