龟兔赛跑是伊索寓言中一个耳熟能详的故事,相信大家都是听着这个故事长大的,在故事中,偷懒的兔子输给了勤劳的乌龟,启发我们要像乌龟一样勤劳。

今天,小编就带大家重温龟兔赛跑的故事,使用Python来进行龟兔赛跑的绘制

龟兔赛跑 python 龟兔赛跑图片绘画_python

01 Turtle库的介绍

Turtle库是Python中最常使用的一个库,也是Python语言入门的首选库,通过模拟一只海龟在面板上进行爬行绘制想要的图案,受到了Python玩家的极大欢迎。

在Python的官方文档中,提供了许多精美图案的绘制,感兴趣的可以前往学习,

接如下:https://docs.python.org/3.7/library/turtle.html

在这里,小编将介绍在本次绘制中使用的基本命令,方便大家进行下一步的学习。

龟兔赛跑 python 龟兔赛跑图片绘画_python_02

02 游戏绘制

熟悉了将要使用的基本命令后,将进行进一步的绘制过程,主要包含了画布的绘制、动物的设计和赛跑三个部分,下面将一步一步进行解析。

1).画布绘制

画布的绘制包含了背景板、起点线、终点线的绘制,详细代码如下,效果如下。

龟兔赛跑 python 龟兔赛跑图片绘画_编程语言_03

关于背景板中起点线、布局、以及题目的绘制,根据尺寸确定好点的位置,进行绘制填充即可,在这里主要介绍下关于终点线的绘制,首先将光标设置为方块,在指定坐标进行盖章操作,便可得到终点线的图案。

龟兔赛跑 python 龟兔赛跑图片绘画_java_04

2).动物绘制

在选择动物图标时,因为turtle库中设计中已经包含了turtle图案,不需要进行设计替换,而兔子在库中是没有提供的,小编通过资料的查询,使用turtle.register_shape("tuzi.gif"),turtle.shape("tuzi.gif")命令进行了替换,所选的图片格式必须为.gif后缀,否则系统将会报错。

龟兔赛跑 python 龟兔赛跑图片绘画_龟兔赛跑 python_05

在进行多个乌龟的设计时,调用Turtle类,创建多个对象作为乌龟对象,并通过turtle_make(turtle_name,colors,position)函数对其进行初始化,使其有序排列,兔子的方位仍是同样的方法,绘制的整体效果如下图所示:

龟兔赛跑 python 龟兔赛跑图片绘画_编程语言_06

3).赛跑

完成了画布和动物的设计之后,便要进行动物跑步的设计,考虑到乌龟和兔子的运动关系,乌龟运动速度在(1,5)之间随机进行选择,兔子速度则为(4,8)。

此外,兔子还有睡觉行为,比赛的规则是,当其中一方率先到达终点后,便停止比赛,公布第一名的成绩。

龟兔赛跑 python 龟兔赛跑图片绘画_python_07

在程序中,我们可以看到,对于乌龟,采用随机速度进行爬行,每次循环都“勤奋”的进行爬行,而兔子虽然速度更快,但会存在“偷懒”(随机睡眠),影响整体进程。

在For循环中,每只动物依次运行,由于其程序刷新率远大于人眼,人眼会看到同时运动的情形,当五只动物中任意一只到达终点时,比赛结束。

一起看一下,演示效果

龟兔赛跑 python 龟兔赛跑图片绘画_java_08

学了Python这么久,这次我终于用Python实现了童年的故事,发现还是很有趣的,有兴趣的同学可以试试哦!

限于篇幅,我们的源码没有一行一行讲讲,我们会录制详细的视频,在B站上给大家讲解,有兴趣的同学可以看一下,尝个鲜。