3. 被困牢笼
如下图是8X8的格子图,每个正方形格子的边长是50,小蓝点的初始坐标是(25,25)。编写程序,用turtle模块中的海龟画出8×8格子,然后可以用上下左右方向箭头操作小蓝点移动,每次移动50个单位,但无论如何操作,它都到达不了格子外面。
以下是参考代码:
import turtle
def moveup():
if queen.ycor()<=125:
queen.sety(queen.ycor()+50)
def movedown():
if queen.ycor()>= -125:
queen.sety(queen.ycor()-50)
def moveleft():
if queen.xcor()>= -125:
queen.setx(queen.xcor()-50)
def moveright():
if queen.xcor()<=125:
queen.setx(queen.xcor()+50)
def draw_grid(n,length):
"""n: 行列数,length:格子边长"""
turtle.penup()
top = length * n/2
left = -length * n/2
turtle.goto(left,top)
turtle.pendown()
for _ in range(n):
turtle.fd(n*length)
turtle.bk(n*length)
turtle.right(90)
turtle.fd(length)
turtle.left(90)
turtle.fd(n*length)
turtle.left(90)
for _ in range(n):
turtle.fd(n*length)
turtle.bk(n*length)
turtle.left(90)
turtle.fd(length)
turtle.right(90)
turtle.update()
turtle.dot(10,'red')
turtle.speed(0)
turtle.delay(0)
draw_grid(8,50)
turtle.ht()
queen = turtle.Turtle('circle')
queen.color('blue')
queen.penup()
queen.goto(25,25)
screen = turtle.getscreen()
screen.onkeypress(moveup,'Up')
screen.onkeypress(movedown,'Down')
screen.onkeypress(moveleft,'Left')
screen.onkeypress(moveright,'Right')
screen.listen()
screen.mainloop()

