怎么用编程做一款游戏(自己编程设计游戏)
看点 喜欢玩电脑游戏的孩子不少,沉迷于游戏让家长头疼的更是不少。怎样才能让他们从忙于升级打怪的被动式玩家,成为自己也能设计游戏的厉害玩家呢?教他们编程!软件架构师、Python开发工程师邓晓磊就分享了他教外甥自己制作一款游戏的经验,开篇的场景我们都不陌生,关键就看家长怎么引导了!
文 | 邓晓磊 编辑丨闻琛
某天,家庭聚会。晚饭后,我躺在沙发看电视。
姐姐对我抱怨道:“你看咱家镇宇,一天到晚玩游戏,都是跟你学的!”
我转头一看,外甥正抱着手机玩得入迷,然后问姐姐:“孩子今天玩多久了?”其实我并不反对孩子玩游戏。因为我小时候也是这样喜欢玩游戏,并一直因为对游戏的热爱,最终走上了软件开发的职业。
姐姐继续道:“已经快一个小时了,说了好几次都放不下手机。”
“嗯,那是有点多了。”我思考着,如果只是单纯地玩游戏,恐怕学不到多少有用的东西,但如果结合我的专业,给他灌输一些编程的思想呢?
说做就做!我到外甥身边,看了一小会儿他正在玩的游戏,等他一局完成,对他说道:“镇宇,你玩游戏那么厉害,那有没有兴趣做一个游戏出来给别的同学玩呢?”
“做游戏?”他有点迷糊地抬起头看着我。
我肯定地点点头,“嗯,我教你做游戏,然后你放到手机上,给你的同学玩……”我话还没说我,只见外甥双眼放光,小脑袋像是捣蒜一样快速点头,“好啊好啊!”
小孩子快乐的眼神,好明亮。
我趁热打铁道:“那我们周末一起来做游戏,你玩过了那么多游戏,现在就开始计划一下,做一个什么样的游戏?”
“要得!要得!”只见孩子把手机还给他妈妈,然后飞奔上楼。
很快又拿了他的小书包下来,拿出笔和纸开始写写画画。
我得意地大笑。
回到家,我就开始思考要怎么样教他学习编程。学习制作一款简单的游戏,首选语言当然是Python。因为一直有一句话叫做:人生苦短,我用Python(Life is short. You need Python)。
Python最初就是以教育为目的设计出来的编程语言,非常简洁优美,适合孩子入门。国内外很多学校开设的编程课程,也将Python作为入门语言来教授。下图是七种最受欢迎的语言在美国39所高校中的使用情况:
现在很多儿童机器人编程大赛采用的核心语言也是Python。各大儿童机器人玩具厂家,也推出了基于Python的编程接口。
美国的一位专家还特别和自己的儿子一起写了一本书,来讲诉作为父亲如何与孩子一起学习Python编程,此书获得国内外一致好评,豆瓣评分更是高达8.5分。
而且,近年来大数据、云计算和人工智能的兴起,给了Python更多的优势,要知道,前段时间横扫围棋界的人工智能阿尔法狗(AlphaGo)的核心算法库TensorFlow就是在Python下运行的。而云计算和大数据领域,Python也处于领导地位。所以最近几年Python的排名一直在上升。
更多的,Python还是一门重要的胶水语言,所谓胶水语言,就是用来黏合各种开发工具和语言。这也就意味着,Python不但适合入门,更适合作为职业规划,成为参与未来科技变革的核心力量。简单来说,如果我外甥学会了Python,他以后的职业生涯,肯定会有所加分,甚至是完全不同。
而兴趣,却是最好的老师,既然Python那么多好处,从小培养外甥的兴趣,不是更好么?
周末,外甥给我打电话,问我是否有空履行之前的约定。
那必须是有空啊。
然后周六他就自己一个人坐车到了我家,我们开始讨论。
到家,休息好了,我问他:“你想做一个什么游戏呢?”
他认真地思考了一下,回答我说:“我们先做一个简单点的游戏”。非常的睿智啊,才9岁的孩子,很清楚复杂的事情要从简单的部分开始。
其实我心里早想好了思路,先给他讲解最简单的程序的逻辑,让他有一点成就感,这就是今天的目标。
所以,我告诉他我们今天先做一个只有文字的游戏,叫做钓鱼。
让我吃惊的是,他立刻开始规划:要有很多种鱼,钓到鱼可以卖钱,然后可以用钱买道具……
好吧,我理解为他玩过类似的游戏,有一些概念了。
然后,我引导他说:那要不要设计一部分机会钓不到鱼呢?比如钓起来一个炸弹?
然后我就给他讲了一个解锁炸弹的数字迷你游戏,没错,就是经典的猜数字游戏:电脑出一个随机数字,玩家来猜,猜对了就炸弹解除,猜错了就提示数字太大还是太小。如果超过3次没猜中,炸弹就爆炸了。
我想可以让他在玩游戏的过程中,做几个简单的数学题。并且可以理解编程的最基本的元素——分支和循环,我给他画了个图解释,告诉他绿色的小箭头就是分支,虚线的大箭头就是循环。程序从粉色框开始,一个框一个框地执行,检测到玩家输入的内容就去比对密码。
如果密码正确就解除,如果密码不正确就继续判断是否超过三次,如果超过三次就爆炸,如果低于三次就循环提示输入密码。
这个过程中,我给他讲解了Python的基本的赋值、分支和循环,没有讲得很细,主要以实现功能和灌输概念为主。
接下来,在这个游戏基础上扩展,就变得较为容易了。
我再给外甥讲解了一下关于对象的概念,并引入了类来作为游戏中各个元素的核心,当然,都是以实用性为主,并没有深入讲解。毕竟现在主要培养的是他的兴趣和对程序的逻辑的理解。我给他画了下面这个图,用来讲解整个游戏的逻辑:
游戏开始后,先要输入玩家的名字,然后根据名字去查找游戏进度,如果有游戏进度的,就读取进度,否则就全新开始游戏。
接下来就是一个游戏菜单开始的循环体,根据选择执行不同的指令。
如果选择钓鱼,就开始展示随机的钓鱼结果,如果结果是钓到炸弹,那就启动之前的那个猜数字的炸弹小游戏。
成功地引起了外甥对编程的兴趣,万里长征的第一步已经完成了。我和他一下午就耗在这个小游戏里,看着小家伙在纸上快乐地写写画画,规划着游戏的内容,设计鱼的种类,金币数量等等。
然后和我一起编写代码,调试代码,听我讲解代码的原理和运行流程,无比专注,感觉比他打游戏还要快乐。
我当然也很快乐,享受和孩子一起的悠闲的时光的同时,让他接触了编程,学了一些以后会对他人生起到正面积极作用的技能。
因为整个游戏比较小,而且并没有图形部分,所以几个小时已经可以看到成效了(PS:这也是最重要的,最开始学编程,一定要让他快速地获得成就感,不然时间太长就容易有挫折感,造成兴趣流失),电脑上的运行效果如下:
当然,为了让他可以跟小伙伴一起玩(炫耀),我用了一个叫作QPython的手机App来运行刚才编写的代码:
因为我用的是Python 3,所以选择了QPython3的版本来在手机上运行,
最后,奉上完整代码,请在Python3下运行:
被广大粉丝追捧的
佩恩教授《Python编程入门课》
终于第二次开班了!
上个月,第一批学员300个名额
上线首日即售罄!
为了实现对没报上名家长的承诺
我们正式开放第二次学习营
150个名额,报完即止!
佩恩教授是北乔治亚大学终身教授
是亚马逊最受欢迎儿童编程书的作者
通过学习Python——
这门最适合初学者的编程语言
他引领孩子
进入了真实的编程世界!
点击下图
立即购买
▼
▼点击阅读原文,进外滩教育微店购买
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com