乌龟编程精讲版-63

本节所需基础知识:

坐标coordination

函数function

关于盖房子

如何盖房子呢(像上面一样的)?想象中应该是这样:先盖四面的墙、再做房顶、然后安窗户、再然后安门儿......如果有院子,还要做草坪、小路、栅栏门儿等等。当然,后续还会有装修什么的。总之是按“功能”部位逐渐工作。

盖房子叫做“建筑工程”、做软件叫“软件工程”——这两个都叫“工程”,所以软件编程的方法也是像盖房子一样按照“功能部位”逐步完成。软件里的这种每个功能我们是用“函数”来实现的。所以:

我们设计了函数drawHouse()来造墙面

我们设计了函数drawDoor()来造

我们设计了函数drawWindow()来造窗户

我们设计了函数drawFence()来造栅栏

我们设计了函数drawPath()来造小路

我们设计了函数drawBush()来造灌木丛

我们设计了函数drawGrass()来造草坪

我们设计了函数drawCloud()来造云朵

我们设计了函数drawSun()来造太阳

开始“造”房子

最先开始造的是“墙”和“屋顶”,房屋的主体就是它,所以我们写了一个drawHouse()函数来完成这个“功能”或“任务”。仔细读下面的代码,学习过平台前面教程的童鞋都能理解吧:提笔penup,走到哪里用goto,设置方向setheading,前进forward等等。是不是很easy。

房屋主体代码

请执行上面的代码查看结果。对于如何测试一个函数因为其他的部分还没有写好,所以最好的办法是在IDLE里面执行程序,然后在提示符>>>下调用函数试验下:

测试

drawHouse()函数代码

画窗户

两种窗户,一种是方形、一种是圆形。我们用一个函数drawWindow()来画两种窗户,当然很容易实现了,一个if选择结构就可以了。画田字形窗户的时候用了双层的for循环,为的是画完后能把坐标(x,y)点作为“中心”,这样我们在调用函数drawWindow(pen,x,y,shape)时,我们指定的是中心位置。

一朵云彩

下面画一朵天空中的云彩。当然画云彩也有很多方法,我们就用简单的一堆“圆形”来表示,然后“填充”,很简单的代码,请查看如下专门画云朵的函数drawCloud()。你要是测试的话还按照上面教的方法就行了。

画“云朵”代码

整体来画

重复使用以前写的代码

上面我只介绍了几个“功能”部分的函数——主体架构、窗户,还有天上的云朵;还有很多函数呢用来专门画各个“功能”——还有门、栅栏、小路、草地、太阳等等。我们直接贴上代码(扫描下面二维码获得),请自行阅读,很容易理解。

扫描获得完整各功能函数代码

(保存文件名为shapes.py)

今天教大家一个很重要的方法,就是“代码重用”——比如我先写了一段代码,里面有一个画“窗户”的函数,就比如上面提到的drawWindow()函数,我如果下次再一次在一个新的程序里写代码的时候也需要画窗户,那我再写一遍drawWindow()函数吗?NO,大家都很懒,你我都一样。这时候我可以把原来写的函数直接import(导入)过来就行了(实际上,我们画画之前的第一条语句import turtle,也是引入了人家早已经写好的一些程序)。好了,将一堆含有画房子的各个部分的“函数”保存为“shapes.py”这个文件名字(上面二维码里有此代码),然后再新建一个程序代码文件,取名为“house_drawing.py”,如下所示:

这个是什么?

这是国外的小朋友(10岁)画的画儿,画的是他的城市的一角。当然不是用画笔了,而是用神奇的python语言编程出来的!用编程来画画当然可以了。

这个是小朋友(12岁)用Python语言编程设计的小游戏。能“吃”东西,能加分和减分,特别容易上瘾 哦!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181030G07L6A00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券