如何使用Python turtle库绘制指定样式的骰子
Python Turtle 骰子实现代码
以下代码可直接运行,实现了标准6面骰子的绘制效果,包含随机掷骰的滚动动画:
import turtle import random # 初始化画布和画笔 t = turtle.Turtle() t.speed(0) t.hideturtle() screen = turtle.Screen() screen.title("Turtle 骰子") screen.tracer(0) # 绘制骰子基础方块 def draw_dice_bg(): t.penup() t.goto(-100, 100) t.pendown() t.fillcolor("white") t.begin_fill() for _ in range(4): t.forward(200) t.right(90) t.end_fill() # 绘制单颗点数 def draw_dot(x, y): t.penup() t.goto(x, y) t.pendown() t.fillcolor("black") t.begin_fill() t.circle(15) t.end_fill() # 根据点数绘制对应骰子 def draw_dice(num): t.clear() draw_dice_bg() if num == 1: draw_dot(0, -15) elif num == 2: draw_dot(-60, 60) draw_dot(60, -90) elif num == 3: draw_dot(-60, 60) draw_dot(0, -15) draw_dot(60, -90) elif num == 4: draw_dot(-60, 60) draw_dot(60, 60) draw_dot(-60, -90) draw_dot(60, -90) elif num == 5: draw_dot(-60, 60) draw_dot(60, 60) draw_dot(0, -15) draw_dot(-60, -90) draw_dot(60, -90) elif num == 6: draw_dot(-60, 60) draw_dot(60, 60) draw_dot(-60, -15) draw_dot(60, -15) draw_dot(-60, -90) draw_dot(60, -90) screen.update() # 掷骰子动画 def roll_dice(): # 模拟滚动效果,快速切换10次随机点数 for _ in range(10): temp_num = random.randint(1,6) draw_dice(temp_num) turtle.delay(100) # 最终停留的点数 final_num = random.randint(1,6) draw_dice(final_num) return final_num # 绑定鼠标点击触发掷骰子 screen.onclick(lambda x,y: roll_dice()) # 首次运行直接掷一次 roll_dice() turtle.done()
- 运行后会自动生成第一次随机掷骰结果,点击画布任意位置可再次触发掷骰动画
- 可自行调整代码内的正方形边长、点数大小、动画延迟参数修改骰子样式和滚动效果
内容的提问来源于stack exchange,提问作者Asad Kareem
相关产品推荐
相关产品推荐

