找回密码
 立即注册
查看: 202|回复: 0

50行Python代码实现经典游戏,不仅是划水神器,更是学习 ...

[复制链接]
发表于 2022-11-14 14:04 | 显示全部楼层 |阅读模式
贪吃蛇、迷宫、吃豆人、扫雷、Flappy Bird...这些游戏可以是非常经典,甚至伴随着很多人的童年回忆。那么,你是否想过自己开发一款专属游戏?是否思考过开发这样一款游戏需要多少工作量?
游戏开发在互联网行业算是一个门槛较高的方向,因此,对于非专业的游戏开发者来说,开发一款游戏一直是一件让人望而却步的事情,遥不可及

那么,今天要介绍的这款Python项目就可以轻松实现你成为游戏开发者的想法,实现前面提到的这些经典游戏只需要50-100代码即可完成。
free-python-games这个项目让我眼前一亮,终于找到了一个合适的Python学习项目。它对于成年人同样适用、有价值。
我之所以介绍这款项目,不单单是它实现了让人回到童年的经典游戏。更重要的原因是它能够作为一个Python学习、锻炼探索和理解能力的一款好工具。
free-python-games和我们接触的大多数Python库那样让人如同垒积木一样去实现一项功能不同,你需要去静下心来死锁一款游戏的主题,同时需要去实现游戏中的每一个策略。
我觉得这样比拿来即用的搬运工作要有趣很多,且更加具有挑战。
以我们熟知的贪吃蛇为例,当然我们目前对于这款游戏的主题和玩法已经非常清楚了,通过方向键控制蛇的移动,每当吃到一颗食物蛇就会变长,如果撞到墙则游戏结束...
那么,对这款游戏进行拆解,就需要思考几个问题:


  • 如何使蛇加速和减速?
  • 如何使蛇绕过边缘?
  • 如何分配新产生食物的位置?
  • 游戏中的蛇如何根据键盘操作做出相应的反应?
看到这里你就会发现,它并不像我们大多数情况下使用Python那样,np.linespace、plt.plot、tf.Session,它更像是LeetCode上面的算法题,需要你从零开始去实现一款游戏,用心去思考游戏实现过程中的每个细节。而在这个过程中对人的提升会非常迅速。
下面就以贪吃蛇这个游戏为例,介绍它的源码和实现过程,来回答上述4个问题。
首先,导入需要的模块,


其中turtle是一款绘图工具,主要为了实现游戏的前端和用户交互功能,freegames包含了一些开发游戏会用到的基本元素,random是Python中用于生成随机数的库,在生产新食物的过程中会遇到(回忆一下,当蛇吃了一颗食物后,会在窗口内随机产生一颗食物)。
然后,就初始化一些变量,分别用于存储食物、蛇的状态,


下面就是初始化蛇的位置,已经定义蛇对于键盘方向键的响应,朝着指定的方向移动,


接下来,我们需要判断蛇是否在边界框以内,如果在,则继续移动,否则终止,


最后,就是整个游戏的串联逻辑,不断移动蛇、不断判断当前状态,然后选择是否继续移动,


到此为了,经典的贪吃蛇游戏就完成了。整款游戏的纯代码行数不足50行。但是,却内藏锦绣,有很多需要开发者去思考和琢磨的点,对Python学习者也是一个很大的提升。
除了贪吃蛇,这个项目中还有迷宫、吃豆人、扫雷、Flappy Bird等20+款经典游戏。
当然,如果你觉得这些游戏还不够,或者对游戏开发充满兴趣,或者有很好的游戏设计idea但开发能力受限,那么,不妨学习一下free-python-games这个项目,能够把精力专注于游戏本身,而不需要在编程语言方面耗费太多时间。
另外,如果你仅仅希望用来划水,这个项目同样可以满足你,只需要简单的安装之后就可以在电脑上玩这些经典游戏。
安装


游戏列表


打开游戏


另外,你还可以拷贝一份游戏源码到本地路径,用于编辑,

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-24 21:04 , Processed in 0.089776 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表