如何用python turtle画一个中国象棋的棋盘?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用python turtle画一个中国象棋的棋盘?相关的知识,希望对你有一定的参考价值。

#绘制棋盘,每个格子50
import turtle
t=turtle.Pen()
bs=50
#画直线
def line(x,y,z):
    t.penup()
    t.goto(x,y)
    t.pendown()
    t.fd(z)

#两点直线
def any(a,b,c,d):
    t.penup()
    t.goto(a,b)
    t.pendown()
    t.goto(c,d)

#画L型
def typeL(x,y):


    t.penup()
    t.goto(x-bs*0.25, y+bs*0.075)
    t.pendown()
    t.goto(x-bs*0.075, y+bs*0.075)
    t.goto(x - bs*0.075, y + bs*0.25)
    t.penup()
    t.goto(x - bs*0.25, y - bs*0.075)
    t.pendown()
    t.goto(x - bs*0.075, y - bs*0.075)
    t.goto(x - bs*0.075, y - bs*0.25)

    t.penup()
    t.goto(x+bs*0.25, y+bs*0.075)
    t.pendown()
    t.goto(x+bs*0.075, y+bs*0.075)
    t.goto(x + bs*0.075, y + bs*0.25)
    t.penup()
    t.goto(x + bs*0.25, y - bs*0.075)
    t.pendown()
    t.goto(x + bs*0.075, y - bs*0.075)
    t.goto(x + bs*0.075, y - bs*0.25)

#画半L型
def typehL(x,y,z):
    if(z=='l'):
        t.penup()
        t.goto(x-bs*0.25, y+bs*0.075)
        t.pendown()
        t.goto(x-bs*0.075, y+bs*0.075)
        t.goto(x - bs*0.075, y + bs*0.25)
        t.penup()
        t.goto(x - bs*0.25, y - bs*0.075)
        t.pendown()
        t.goto(x - bs*0.075, y - bs*0.075)
        t.goto(x - bs*0.075, y - bs*0.25)
    if(z=='r'):
        t.penup()
        t.goto(x + bs*0.25, y + bs*0.075)
        t.pendown()
        t.goto(x + bs*0.075, y + bs*0.075)
        t.goto(x + bs*0.075, y + bs*0.25)
        t.penup()
        t.goto(x + bs*0.25, y - bs*0.075)
        t.pendown()
        t.goto(x + bs*0.075, y - bs*0.075)
        t.goto(x + bs*0.075, y - bs*0.25)

#画横线


p=bs*4.5
while(p>=-bs*4.5):
    line(-bs*4,p,bs*8)
    p=p-bs
any(bs*4,bs*4.5,bs*4,-bs*4.5)
any(-bs*4,bs*4.5,-bs*4,-bs*4.5)
t.right(90)
q=-bs*3
while(q<bs*4):
    line(q,bs*4.5,bs*4)
    q=q+bs

q=-bs*3
while(q<bs*4):
    line(q,-bs*0.5,bs*4)
    q=q+bs

#画斜线
any(-bs,-bs*4.5,bs,-bs*2.5)
any(bs,-bs*4.5,-bs,-bs*2.5)
any(-bs,bs*4.5,bs,bs*2.5)
any(bs,bs*4.5,-bs,bs*2.5)
#画L型
typeL(-bs*2,-bs*1.5)
typeL(0,-bs*1.5)
typeL(bs*2,-bs*1.5)
typeL(-bs*2,bs*1.5)
typeL(0,bs*1.5)
typeL(bs*2,bs*1.5)
typeL(-bs*3,-bs*2.5)
typeL(bs*3,-bs*2.5)
typeL(-bs*3,bs*2.5)
typeL(bs*3,bs*2.5)
typehL(-bs*4,-bs*1.5,'r')
typehL(bs*4,-bs*1.5,'l')
typehL(-bs*4,bs*1.5,'r')
typehL(bs*4,bs*1.5,'l')
turtle.done()

参考技术A 这个要收费的😂简单问题免费解答,小程序就不能无偿给你写了追问

不是啊我的意思是

只要是一堆方格就行了吧 不需要边框之类的

追答

你可以自己编。有问题问我,但是完全从0给你弄~是要收费滴😁

追问

效果图这样可以没有文字

我试试 谢谢啊😁

弱弱的问下 这个编出来会很长吗 我已经41行了

请问如何用Python turtle画一个多角星?

如何通过输入顶点个数来确定对应多角星?比如顶点数是5,就画五角星。如果顶点数是6,就画6角星。

一般是要靠算角度的
import turtle
import time
turtle.forward(100)
turtle.right(144)
time.sleep(1)
turtle.forward(100)
turtle.right(144)
time.sleep(1)
turtle.forward(100)
turtle.right(144)
turtle.forward(100)
time.sleep(1)
turtle.right(144)
turtle.forward(100)
time.sleep(3)
你可以写一个子函数通过给定的角的数量用公式计算出角度再代入上述代码的角度参数里就OK了
参考技术A import turtle

L = 50  # 边长
N = 12  # 角的个数
jiaodu = 180 - 360 / (N)  # 每个三个型相对于上一个三角的角度,left转动
tl = turtle.Turtle()  # turtle的对象
tl.screen.delay(0)  # 绘画延时为0

def f1():
    tl.penup()
    tl.fillcolor()
    tl.forward(L)
    tl.pendown()
    tl.right(120)
    tl.fillcolor()
    tl.forward(L)
    tl.right(120)
    tl.fillcolor()
    tl.forward(L)
    tl.right(120)
    tl.end_fill()  # 填充结束


# 画外部的三角
for i in range(N):
    tl.left(jiaodu)  # 下一个三角形的角度
    tl.penup()
    tl.forward(L)  # 新三角的起始位置
    tl.pendown()
    tl.right(180)  # 转动到画三角形的相对0度
    f1()

tl.end_fill()
tl.screen.mainloop()

参考技术B 画三条线或者画个多边形,这些基本的函数应该是有的哈。 参考技术C 画一个多角星追问

?

以上是关于如何用python turtle画一个中国象棋的棋盘?的主要内容,如果未能解决你的问题,请参考以下文章

如何用turtle画一个红色字母A

python如何画3d圣诞树

如何用python绘制彩色蟒蛇

如何用python画钝角三角形

如何用python来画一个建筑的平面图,用matplotlib可行不?

python用turtle画国际象棋棋盘