编程娃娃原理篇

编程娃娃原理篇

李兴球Python编程娃娃演示

李兴球Python编程娃娃原理篇

李兴球Python编程娃娃原理篇


编程娃娃是本人开发的一个小软件,有Scratch版和Python版。这个作品通过编排图形化指令,指挥一个娃娃移动。
由于作品的代码比较复杂,这里提供一个精简版的核心代码用来阐述原理,方便学习,并且你也可以把它扩展成为一个编程思维训练软件。
下面是全版本的演示:
李兴球Python编程娃娃演示

李兴球Python编程娃娃演示

"""
   编程娃娃原理篇.py
   想像中间的箭头是一个可爱的娃娃,它会根据你编排的指令移动!
"""
from time import sleep
from turtle import Turtle,Screen,Shape

def appendshape(image,name=None):
    """支持png图形的添加造型到海龟画图形状字典
        name:给造型取的名字
       image:图像文件名
    """
    pass                                      # 代码省略
        
class Command(Turtle):
    pass                                      # 代码省略
    
screen = Screen()

# 图像到命令的映射
cmdsdict = {'res/fd.png':'forward(50)',
          'res/right.png':'right(90)',
          'res/left.png':'left(90)'}

c1 = Command(cmdsdict,(-160,-200))
c2 = Command(cmdsdict,(-80,-200))
c3 = Command(cmdsdict,(0,-200))
c4 = Command(cmdsdict,(80,-200))
c5 = Command(cmdsdict,(160,-200))

cmds = [c1,c2,c3,c4,c5]

wawa = Turtle(shape='arrow')
wawa.speed(1)
wawa.pensize(4)
wawa.color('blue','red')
wawa.shapesize(2,2,10)
wawa.setheading(90)

def run(x,y):
    wawa.onclick(None)
    for cmd in cmds:
        s = 'wawa.' + cmd._cmd
        screen.title(s)
        exec(s)
        sleep(1)
    wawa.onclick(run)
        
wawa.onclick(run)

ft = ('黑体',12,'normal')
ftb = ('黑体',22,'normal')
w = Turtle(shape='blank')
w.penup()
w.speed(0)
w.color('gray')
w.sety(260)
w.write("编程娃娃原理篇",align='center',font=ftb)
w.sety(-260)
w.write("请单击上面5个按钮编排指令",align='center',font=ft)
w.sety(-280)
w.write("然后单击蓝色箭头运行指令",align='center',font=ft)

screen.mainloop()

需要全部源代码和素材,请

成为会员后,登陆才能继续浏览!联系微信scratch8即可办理会员。
(会员专属:能浏览所有文章,下载所有带链接的Python资源。)

李兴球

李兴球的博客是Python创意编程原创博客