# Codemao **Repository Path**: haomingze/codemao ## Basic Information - **Project Name**: Codemao - **Description**: 本人所在编程猫兼职,授课创绘一夏课程代码及素材 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-11-29 - **Last Updated**: 2026-01-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 编程猫创绘一夏课程 ## 课上代码 1. 如意金箍棒 ```python import turtle as t # 引入turtle库并起别名t t.pensize(20) # 设置画笔粗细为20 # 金箍棒的头 t.color("gold") # 设置画笔颜色为金色 t.forward(50) # 沿着画笔朝向50 # 金箍棒的主体 t.color("red") # 设置画笔颜色为红色 t.forward(200) # 沿着画笔朝向200 # 金箍棒的尾 t.color("gold") t.forward(50) t.done() # 保持画面 ``` 2. 源码手表 ```python import turtle as t # 基础设置 t.pencolor("tomato") # 设置画笔颜色 t.pensize(60) # 设置画笔粗细 # 表带 t.right(90) # 画笔朝向旋转 t.forward(200) t.left(180) t.forward(400) t.right(180) t.forward(200) # 让画笔回到原点 # 表盘 t.dot(100, "cyan") t.dot(90,"white") # 时针 t.pensize(5) # 调整画笔尺寸 t.pencolor("cyan") # 调整画笔颜色 t.left(90) t.forward(20) t.backward(20) # 分针 t.pensize(3) # 调整画笔尺寸 t.left(90) t.forward(40) t.backward(40) # 最后调整 t.hideturtle() # 隐藏画笔 t.done() ``` 3. 啦啦啦种太阳 ```python import turtle as t t.pencolor("orangered") t.pensize(15) t.speed(0) # 设置画笔绘画速度 0最快 # 大光芒 i = 0 while i < 8: t.forward(300/2) t.backward(300/2) t.right(360/8) i += 1 # 小光芒 t.right(22.5) t.pencolor("gold") t.pensize(8) for i in range(8): t.forward(270/2) t.backward(270/2) t.right(360/8) # 太阳 t.dot(240,"white") t.dot(200,"coral") # 最后设置 t.hideturtle() t.done() ``` 4. 凉时益友 ```python import turtle as t # 开始设置 t.speed(0) d = 400 # 扇子直径 # 火红扇面圆环 t.dot(d,"firebrick") t.dot(1/4*d,"white") # 遮盖下半圆 t.backward(d/2) t.pencolor("white") # 设置画笔颜色 t.fillcolor("white") # 设置画笔填充颜色 t.begin_fill() # 开始填充 i = 0 while i < 4: t.forward(d) t.right(90) i += 1 t.end_fill() # 扇骨 t.forward(d/2) t.pencolor("tan") t.pensize(3) j = 0 while j < 9: t.forward(d/2) t.backward(d/2) t.left(180/9) j += 1 # 绘制边骨 t.forward(d/2) t.backward(d) t.forward(d/2) # 绘制扇钉 t.dot(8,"white") # 结束设置 t.hideturtle() t.done() ``` 5. 夏有凉风 ```python import turtle as t t.speed(0) #加快画笔速度 #风扇杆 t.pensize(40) t.pencolor("gray") t.right(90) t.forward(200) #风扇底座 t.pensize(50) t.pencolor("deepskyblue2") t.right(90) t.forward(65) t.back(130) #抬笔,回到原点,落笔 t.penup() t.home() t.pendown() #画大小圆面 t.dot(250,"azure3") t.dot(230,"azure2") #设置扇叶参数 t.pensize("skyblue") t.fillcolor("skyblue") t.pensize(1) #画扇叶 for i in range(4): t.begin_fill() t.circle(50,180) t.left(90) t.forward(100) t.end_fill() #画大小轴心 t.dot(30,"azure4") t.dot(20,"deepskyblue2") #隐藏画笔 t.hideturtle() t.done() ``` 6. 七月流火 ```python import turtle as t t.setup(660,660) t.bgpic("./夜空.gif") t.penup() t.goto(-300,300) t.pendown() t.pencolor("yellow") size = 5 # 画笔的大小 while size < 50: t.pensize(size) t.forward(20) size = size+1 t.right(1) t.done() ``` 7. 秘制汉堡 ```python import turtle as t t.setup(700,700) t.speed(0) t.dot(100,"tan1") t.left(90) flag = 1 while flag != 0 : num = t.numinput("夹层选择","1.生菜 2.沙拉酱 3.番茄 4.牛肉 5.退出") if num == 1: color = "forest green" elif num == 2: color = "light yellow" elif num == 3: color = "tomato" elif num == 4: color = "saddle brown" else: flag = 0 color = "tan1" t.penup() t.forward(15) t.pendown() t.dot(100, color) t.hideturtle() t.done() ``` 8. 弹幕王者 ```python import turtle as t import time t.setup(900,400) t.pencolor('green') t.speed(0) t.tracer(0) t.goto(450,0) s = t.textinput('输入弹幕','请输入弹幕内容') size = int(t.numinput('输入字号','请输入弹幕大小')) while 1: t.write(s,font=("思源黑体",size,"bold")) time.sleep(0.01) t.clear() t.penup() t.backward(1) t.pendown() t.done() ``` 9. 爱心biubiu ```python import turtle as t import time length = 1200 # 屏幕宽度 width = 600 # 屏幕高度 color = "pink" # 基本颜色 # 基本设置 t.setup(1200,600) #设置窗口大小 t.tracer(0) # 最快的绘画速度同时不显示绘画轨迹 注意和speed函数进行区分 t.addshape("codemao.gif") # 添加codemao形状 t.pencolor(color) # 设置画笔颜色 t.fillcolor(color) # 设置填充颜色 # 编程猫 codemao = t.Pen() #获取一只画笔来当作编程猫 codemao.shape("codemao.gif") #使用codemao形状 codemao.penup() codemao.goto(-350,0) # 爱心 length = 50 # 爱心的默认大小 x = -300 # 爱心的初始坐标 while x < t.window_width() /2: t.setheading(0) # 设置画笔默认朝向 # 设置画笔默认位置 t.penup() t.goto(x, -100) # 回到原点 t.pendown() # 画正方形 t.begin_fill() t.left(45) for i in range(4): t.forward(length) t.left(90) t.end_fill() # 画右边圆 t.forward(length) t.left(90) t.forward(length/2) t.dot(length,color) # 画左边圆 t.forward(length/2) t.left(90) t.forward(length/2) t.dot(length,color) # 更新 t.update() # 和tracer成组使用 显示最后的轨迹 time.sleep(0.01) t.clear() length += 5 x += 10 t.done() ``` 10. 起风了 ```python import turtle as t import time # 开始设置 t.setup(800,800,0,0) # 设置窗口大小 t.bgcolor("turquoise3") # 设置背景颜色 t.tracer(0) # 不限显示绘画路径 blade = t.Pen() # 专门获取一只画笔来画叶片 blade.hideturtle() # 可以一开始就隐藏画笔 t.hideturtle() # 隐藏画杆的画笔 # 杆(pole) poleColor = "light steel blue2" t.dot(80,poleColor) t.pensize(30) t.pencolor(poleColor) t.left(90) t.backward(280) t.pencolor("light green") t.right(90) t.forward(50) t.backward(100) while True: # 叶片 for i in range(3): blade.pencolor("floral white") size = 40 while size > 13: blade.pensize(size) blade.forward(8) size -= 1 blade.goto(0,0) blade.left(120) # 轴心 blade.dot(30,"light steel blue3") # 大轴心 blade.dot(10,"light steel blue4") # 小轴心 # 更新画面 t.update() # 清除已绘制的叶片和轴心 blade.clear() # 画笔左转 blade.left(5) # 延时0.01秒 time.sleep(0.01) # 结束设置 # t.done() 因为是动画可加可不加 ``` 11. 海龟赛跑 ```python import turtle as t import random # 开始设置 t.setup(1000,569) # 设置窗口大小 t.bgpic("img/bg.gif") # 设置背景图片 colcor_list = ['black','orange','gold','forest green','skyblue'] # 颜色列表 turtle_list = [] # 乌龟列表 # 创建五只乌龟 for i in range(5): temp = t.Pen() # 获取一只画笔当作乌龟 temp.color(colcor_list[i]) # 设置颜色 temp.shape('turtle') # 设置画笔形状为乌龟 temp.shapesize(1.5) # 设置画笔大小 temp.penup() # 抬笔 temp.goto(-430,160-80*i) # 移动到指定跑道,注意要抬笔 turtle_list.append(temp) # 将画笔添加到列表中 # 设置猜测框 num = t.numinput("海龟赛跑","你觉得几号海龟跑的最快?") flag = True while flag: for i in range(5): turtle_list[i].forward(random.randint(5,10)) # 每次随机前进 5-10 if turtle_list[i].xcor() > 400 : # 大于400结束 turtle_list[i].shapesize(3) # 设置大小为3 win = i + 1 # 设置 win变量为循环变量加一 flag = False break if num == win : t.bgpic("img/bg1.gif") # 设置背景图片 else : t.bgpic("img/bg2.gif") # 设置背景图片 # 结束设置 t.done() ``` 12. 节日贺卡 ```python import turtle as t import random import time # 开始设置 t.setup(1000,800,5,5) t.tracer(0) # 不显示绘画轨迹 t.addshape('img/codemao.gif') t.addshape('img/bg.gif') # 夜晚 t.bgcolor('dodger blue4') # 月亮 moon = t.Pen() moon.hideturtle() moon.dot(400,'ivory') # 背景 bg = t.Pen() bg.shape('img/bg.gif') bg.penup() bg.goto(0,-160) # 编程猫 codemao = t.Pen() codemao.shape('img/codemao.gif') codemao.penup() codemao.goto(0,-250) # 祝福语 txt = t.Pen() txt.hideturtle() txt.penup() txt.color('cornsilk') txt.goto(500,300) # 移动到500,300 # 星星 star = t.Pen() # 创建一只画笔用来画星星 star.hideturtle() # 隐藏画笔 star.penup() # 抬起画笔 count = 0 # 定义一个计数变量 while True: count += 1 # 每次循环加一 if count == 1 : # count等于1 画星星 star_num = random.randint(30,50) # 随机从30-50 for i in range(star_num): star_x = random.randint(-500,500) # x坐标从-500到500随机 star_y = random.randint(-150,400) # y坐标从-150到400随机 star_size = random.randint(2,5) # 星星大小随机2-5 star.goto(star_x,star_y) # 移动到随机位置 star.dot(star_size,'light yellow') # 画出星星 elif count == 80 : star.clear() count = 0 # 弹幕 txt.write('毕业快乐',font=("思源黑体", 30, "normal")) # 绘制弹幕 txt.backward(1) t.update() # 更新屏幕 time.sleep(0.01) # 延时0.01s txt.clear() # 清除画面 # 结束设置 t.done() ``` ## 代码仓库地址: [https://gitee.com/haomingze/codemao](https://gitee.com/haomingze/codemao)