Python turtle的多学科创意编程 !

  • Post author:
  • Post category:python


Python 语言中内置的海龟作图turtle 模块设计巧妙,作图模型简单强大,能够让程序设计初学者很快编写出趣味生动的作图程序,极大提高编程学习的兴趣和积极性,在练习过程中培养和提高计算思维。除了绘制图形之外,Python turtle 模块还具有基本的交互功能,加上学习门槛低,又是Python 语言内置的标准模块,所以非常适合作为创意编程的学习和开发平台。本文以Python turtle 模块为核心,展示和分析交互游戏、数学对象可视化等学科领域的创意编程实例,并介绍turtle 模块的深入编程,以供创意编程的教学参考,也可用于高中Python 程序设计课程的教学案例。

Python资源共享群:484031800

本作品是一个通过鼠标控制的交互游戏。程序运行后,在turtle窗口中会有随机数量和位置的红色苹果从顶端向下掉落,掉落速度各不相同。用户需要通过鼠标拖动窗口中间的三角形状“托篮”接住每一个苹果。托篮可以在窗口中随意移动,如果接住苹果,则加10分,分数在窗口左下角实时更新显示,但如果未能接住苹果使其掉出窗口下沿的话,则惩罚性地减100分。由于苹果产生的位置和速度均为随机,数量不定,惩罚性减分幅度大,游戏还是有相当难度的,想一直保持正分不太容易。最后点击关闭窗口即可退出游戏。游戏运行效果如图所示。


turtle功能

本作品涉及到的turtle模块功能主要有5个。

第1个是海龟绘图加速功能,通过在程序前部加tracer方法调用禁止动画显示。

1      import turtle, random

2

3      turtle.tracer(0)

并在每帧绘制结束后调用update方法进行屏幕刷新,让绘制的图形一次性显示在窗口里。

42       # 刷新屏幕

43       turtle.update()

第2个是turtle模块的鼠标交互功能,如程序中的第17行。

12    # 接苹果的篮子

13    turtle.addshape(‘basket’, ((-100, 0), (100, 0), (0, -25)))

14    basket = model.clone()

15    basket.shape(‘basket’)

16    basket.setheading(90)

17



版权声明:本文为Pythoncxy原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。