海龟入门学习器核心代码_turtle introduction learning tool core

"""
    海龟入门学习器核心.py
    这个程序自制了一个"编译器",让我们能在文本框里输入代码。
    可以用来进行最基本的海龟画图入门。
    本项目需要使用部分汉化的turtle.py,否则不要输入中文代
    码,并且海龟的形状也不会旋转。
    由于本程序导入了coloradd模块,可以先在命令提示符里输入
    pip install coloradd 进行安装。为了观察演示,本程序的
    的screen的delay为100,可以通过代码动态改变它的值。
    
"""
__author__ = "李兴球"
__blog__ = "http://www.lixingqiu.com"

import os
from coloradd import *
from tkinter.scrolledtext import * 
from turtle import TurtleScreen, RawTurtle, TK

前进右转代码 = """海龟.前进(100)
海龟.右转(90)"""

彩圆盘代码 = """screen.delay(0)
c = (1,0,0)
for x in range(360):
    海龟.前进(100)
    海龟.倒退(100)
    c = coloradd(c,0.01)
    海龟.颜色(c)
    海龟.右转(1)    
    """

正方形代码 = """for x in range(4):
   海龟.前进(100)
   海龟.右转(90)
"""

十字架代码 = """for x in range(4):
   海龟.前进(100)
   海龟.倒退(100)
   海龟.右转(90)
"""
本文隐藏内容 登陆 后才可以浏览
def main(): global editor global cat,turtle,海龟 global screen global tip_label global runcmd default_code = 正方形代码 width,height = 1020,400 txtwidth = 400 root = TK.Tk() root.geometry(str(width)+ "x" + str(height+100)) root.title("海龟入门学习器核心_作者:李兴球") cv1 = TK.Canvas(root, width=width-txtwidth+10, height=height) cv1.place(x = txtwidth-10,y = 20) screen = TurtleScreen(cv1) screen.bgcolor(1, 1, 1) screen.delay(100) ziti = ("黑体", 16, "normal") editor=ScrolledText(root,width=33,height=22,font=ziti) editor.insert("1.0",default_code) editor.place(x =5,y =20) # 给文本编辑器增加右键菜单 def popup(event): try: pmenu.tk_popup(event.x_root,event.y_root,0) finally: pmenu.grab_release() pmenu = TK.Menu(editor,tearoff=0) pmenu.add_command(label='剪切',command= lambda: editor.event_generate("<<Cut>>")) pmenu.add_command(label='复制',command= lambda: editor.event_generate("<<Copy>>")) pmenu.add_command(label='粘粘',command= lambda: editor.event_generate("<<Paste>>")) pmenu.add_command(label='全选',command= lambda: editor.tag_add("sel",'1.0','end')) pmenu.add_command(label='更多',command= lambda: os.system("explorer " + __blog__)) editor.bind("<Button-3>",popup) # 用于提示错误信息的标签 tip_label = TK.Label(root,text='',font=('宋体',10),fg='red') tip_label.place(x = txtwidth+5,y = height+25) runcmd = TK.Button(root,text='运行', command=run,font=('黑体',16),fg='navy') runcmd.place(x = txtwidth+5,y = height+50) def regoto(x,y): old_delay = screen.delay() cat.ondrag(None) screen.delay(0) cat.penup() cat.goto(x,y) cat.pendown() screen.delay(old_delay ) cat.ondrag(regoto) # 支持png不需注册即可直接使用 cat = RawTurtle(screen,visible=False) cat.color("navy") cat.width(3) cat.shape("海龟红.png") cat.rotatemode("all") # 新增旋转模式,角色可360度旋转 cat.ondrag(regoto) cat.st() # 显示小猫 turtle = cat 海龟 = cat return "EVENTLOOP" if __name__ == '__main__': main() TK.mainloop() # 进入事件循环

python海龟入门学习器核心_Turtle Introduction Learning Tool Core