马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
from turtle import Turtle
class Maze(Turtle):
size = 20
def __init__(self, maze_list):
Turtle.__init__(self)
self.maze_list = maze_list
self.hideturtle()
self.speed(0)
self.draw_walls()
def draw_wall(self):
self.pendown()
self.begin_fill()
self.fillcolor('#7392f6')
for i in range(4):
self.forward(self.size)
self.right(90)
self.end_fill()
self.penup()
def draw_walls(self):
for row in range(13):
for col in range(13):
if self.maze_list[row][col] == 1:
self.draw_wall()
self.goto(self.size * (col + 1) - 130, 130 - self.size * row)
self.goto(-130, 130 - self.size * (row + 1))
maze_list = [
[1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1],
[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1],
[1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1],
[1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1],
[1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1],
[1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1],
[1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1],
[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1],
[1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1],
[1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1],
[1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1],
[1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1],
[1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1]
]
没看懂红字部分 求解释QWQ
这是个画墙的程序
本帖最后由 1q23w31 于 2020-8-23 21:34 编辑
turtle的坐标系
由于每一块砖是正方形,边长是20,矩阵是13行13列,
为了是图形的中心位于坐标系原点,所以区域是-130<x<130,-130<y<130
self.goto(self.size * (col + 1) - 130, 130 - self.size * row)#把笔移动到此行的下一列
某行(col)某块砖的x坐标就是self.size * (col + 1) - 130, 某列的纵坐标就是(130 - self.size * row)
画完一行后,需要把画笔放到最左边即坐标是(-130, 130 - self.size * (row + 1))
|