Python中使用turtle绘制棋盘详解

效果

Python中使用turtle绘制棋盘详解_第1张图片

实现

源码

import turtle
#声明棋盘的单元格宽度为30,数量为18
width = 30
num = 18
#设置画布大小
turtle.screensize(1200,900,"green")
#声明列表来存取坐标
x1 = [(-400,400),(-400+width*num,400)]
y1 = [(-400,400),(-400,400-width*num)]
#获取画笔
t = turtle.Pen()
#设置画笔速度(1-10)越大速度越快
t.speed(8)
#设置画笔颜色
t.pencolor("red")

#循环绘制横向线
for i in range(0,19):
    t.penup()
    t.goto(x1[0][0],x1[0][1]-30*i)
    t.pendown()
    t.goto(x1[1][0],x1[1][1]-30*i)
#循环绘制纵向线
for i in range(0,19):
    t.penup()
    t.goto(y1[0][0]+30*i,y1[0][1])
    t.pendown()
    t.goto(y1[1][0]+30*i,y1[1][1])

#隐藏画笔
t.hideturtle()
#保证运行窗口不被关闭
turtle.done()

讲解

Python中使用turtle绘制棋盘详解_第2张图片

在绘制横向线的循环里:

当i=0

执行penup()让画笔抬起

执行goto()让笔挪到执行位置

因为x1是列表,所以x轴的坐标x1[0][0]就是列表中的第一个元素的第一个值,即-400

y轴的坐标x1[0][1]-30*i就为列表x1中的的第一个元素的第二个值,即400-0*30=400

所以笔会首先挪到(-400,400)

此时笔来到①点,此时执行pendown()画笔会落下

然后再移动到②点,因为此时笔已经落下,所以会画出①②这条线。

同理i=1时画出③④这条线。

同理竖线的绘制也是如此。

 

 

你可能感兴趣的:(Python)