文 | 闲欢

来源:Python 技术「ID: pythonall」

80后和90后的小伙伴们,你们是否还记得这个小小的掌上游戏机?

掌上游戏机

没有玩过这个游戏机的小伙伴的童年是不完整的!

在那个物质匮乏的年代,没有 Switch 游戏机,没有手机,也没有 pad,我们只有掌上俄罗斯和小霸王学习机!

看到这个图片,是不是勾起了童年的记忆?

还想不想再玩一下,回味童年的感觉?

没问题!这就送给你!

最近在浏览 GitHub 开源项目的时候,无意中发现了一个神奇的项目 —— free-python-games 。大家看这个项目名称,肯定能猜到这个项目的大致内容,跟 python 和 游戏有关。

没错,这个项目包含了好多我们小时候在掌上游戏机玩的小游戏,你只要几行代码就可以在电脑上开始玩。作为上班偶尔的摸鱼娱乐项目还是很不错的。

安装

安装包

第一步,我们需要安装这个开源包:

pip install freegames

使用命令

我们可以通过下面的命令来查看命令行帮助:

python -m freegames --help

运行命令后,我们可以看到命令行输出:

usage: freegames [-h] {list,copy,show} ...Free Python Gamespositional arguments:{list,copy,show}  sub-command helplist            list gamescopy            copy game source codeshow            show game source codeoptional arguments:-h, --help        show this help message and exitCopyright 2017 Grant Jenks

我们可以看到这里有 list,copy,show 操作,分别是列举游戏列表、复制游戏源码、展示游戏源码等。

下面我们使用一下 list 命令:

python -m freegames list

我们可以看到小游戏列表:

ant
bagels
bounce
cannon
connect
crypto
fidget
flappy
guess
life
maze
memory
minesweeper
pacman
paint
pong
simonsays
snake
tictactoe
tiles
tron

运行游戏也非常简单:

python -m freegames.snake

下面是运行贪吃蛇的命令,运行命令之后,就会弹出一个 GUI 小方框来呈现贪吃蛇游戏了,我们只需要使用键盘的方向键就可以愉快地玩耍了。

至于其他的复制、查看代码之类的,由于每个小游戏的代码就一个文件,代码量也不多,大家可以到这个开源项目去拷贝源代码自己修改运行即可。

有哪些小游戏?

话不多说,我们先来看看这个项目里面有哪些小游戏。

Paint

画图。你只需要用鼠标在画布上点击一下代表开始,然后再点击一下代表结束,就可以画一条线段,通过线段来画画。

通过键盘可以控制线段的颜色(需要将键盘切换到大写字母模式)。

paint

Snake

贪吃蛇。这个不用介绍,大家应该都知道是什么游戏了。通过键盘的方向键就可以控制方向。

snake

Pacman

吃豆人。使用键盘操纵黄色的小饼饼吃完所有的小白点就算过关。但是不能碰到那四个移动的红饼饼。

pacman

Cannon

射击。通过鼠标在屏幕上点击来确定石头发射的方向,你需要在那些蓝色的移动物体移动到左侧之前把他们都消灭掉。

cannon

Flappy

小雷电。这个小游戏跟雷电类似,你需要上下移动以防止被从右往左移动的黑色大圆饼触碰到。

flappy

Tiles

拼图。开局给你一个乱序的数字拼图,中间留一个空格,你需要将这些数字按从小到大、从下向上的顺序排列起来。点击空格旁边的数字,就可以移动数字到空格。

tiles

还有很多个其他的小游戏,这里就不一一列举了,大家自己去探索吧!这些小游戏够你玩好长时间了。

总结

作为 Pythoner,不能只想着玩这些小游戏摸鱼,我们需要学习怎么设计和实现这些小游戏。这也是这个项目的初衷——帮助初学者学习 Python。源码也在那里,你可以自己拿来随意修改。作者也在一些游戏上设置了空实现(比如第一个画线的游戏,作者预留了一些实现各种形状的空函数),留待大家自己去完成。

希望大家在找回童年乐趣的同时,也能学到知识!

PS:公号内回复「Python」即可进入Python 新手学习交流群,一起 100 天计划!

老规矩,兄弟们还记得么,右下角的 “在看” 点一下,如果感觉文章内容不错的话,记得分享朋友圈让更多的人知道!

代码获取方式】

识别文末二维码,回复:python

贼好玩!几行代码将童年游戏搬上屏幕!相关推荐

  1. 用c语言400行代码小游戏,程序员400行代码制作翻牌游戏解决无聊时间

    原标题:程序员400行代码制作翻牌游戏解决无聊时间 上班感觉累,很想放假,但是放假在家又感觉非常无聊,总是不知道干什么,又感觉还不如上班呢,反正无聊不如练练写小游戏吧,即练习了代码,做完后还能接着玩, ...

  2. 猜猜乐游戏php源码,C/C++百行代码实现热门游戏消消乐功能的示例代码

    游戏设计 首先我们需要使用第三方框架,这里我使用的是sfml,不会使用sfml在我的上几篇文章当中-扫雷(上)有详细的开发环境搭建介绍 首先准备图片资源 一张背景图片,一张宝石图片 窗口初始化加载图片 ...

  3. 2048左移JAVA代码实现,200 行代码实现 2048 游戏

    原标题:200 行代码实现 2048 游戏 作者:Guolanzhe 原文: http://www.guolanzhe.com/?p=522创建游戏文件 2048.py 首先导入需要的包: impor ...

  4. php消消乐代码,C/C++百行代码实现热门游戏消消乐功能的示例代码

    游戏设计 首先我们需要使用第三方框架,这里我使用的是sfml,不会使用sfml在我的上几篇文章当中-扫雷(上)有详细的开发环境搭建介绍 首先准备图片资源 一张背景图片,一张宝石图片 窗口初始化加载图片 ...

  5. python代码翻译-10 行代码,Python 教你自制屏幕翻译工具,有逼格!!

    原标题:10 行代码,Python 教你自制屏幕翻译工具,有逼格!! 1. 场景 大家如果平常遇到不认识的英文,相信大部分的人都会复制内容后,使用翻译软件,或者拷贝到网站上去执行翻译. 当然,对于 I ...

  6. python代码翻译器-10 行代码,Python 教你自制屏幕翻译工具,有逼格!!

    原标题:10 行代码,Python 教你自制屏幕翻译工具,有逼格!! 1. 场景 大家如果平常遇到不认识的英文,相信大部分的人都会复制内容后,使用翻译软件,或者拷贝到网站上去执行翻译. 当然,对于 I ...

  7. python300行代码_Python:游戏:300行代码实现俄罗斯方块

    本文代码基于 python3.6 和 pygame1.9.4.python 俄罗斯方块是儿时最经典的游戏之一,刚开始接触 pygame 的时候就想写一个俄罗斯方块.可是想到旋转,停靠,消除等操做,感受 ...

  8. python编写游戏300行代码_300行代码实现Python游戏:俄罗斯方块

    本文代码基于 python3.6 和 pygame1.9.4. 俄罗斯方块是儿时最经典的游戏之一,刚开始接触 pygame 的时候就想写一个俄罗斯方块.但是想到旋转,停靠,消除等操作,感觉好像很难啊, ...

  9. 《近匠》RealSense:几行代码,为游戏添增实感交互

    <近匠>第58期,Cocos2d-x目前已经支持实感技术的扩展,让开发者可以简单通过几行代码,将手势识别.控制等体感操作融合到自己的应用或游戏中.捕鱼达人团队也基于此技术开发了可实现手势操 ...

最新文章

  1. Ubuntu 8.04嵌入式交叉编译环境arm-linux-gcc搭建过程图解
  2. 数据结构 二叉树
  3. Spring Cloud Alibaba到底坑不坑?
  4. 加载cv2调用摄像头_用Python获取摄像头并实时控制人脸
  5. 让你的名字在百度排名前列
  6. React事件优雅绑定
  7. hdu1010 Tempter of the Bone
  8. 潭州课堂25班:Ph201805201 django 项目 第三十九课 后台 文章发布,图片上传到 FastDFS后端实现 七牛云讲解(课堂笔记)...
  9. Modbus协议栈综合实例设计
  10. XHTML的使用规范
  11. Google全球副总裁Vint Cerf:中国物联网发展不得不关注的几大问题
  12. 1024,今天给大家发100个现金红包和思否课程、掘金小册
  13. 李宏毅深度学习HW2 收入预测 (logistic regression)
  14. TASKCTL连接不到服务端的几种情况和解决办法
  15. Docker端口映射实现网络访问
  16. 关于使用js的setAttribute和getAttribute取dom属性在ie ff safri下的问题
  17. 短视频如何选择背景音乐和配音?四个技巧来帮忙
  18. 我在绑定微信账号时出现了问题,提示该微信已绑定其他账号
  19. valhalla 插件_Java 15:密封类使Valhalla更加接近
  20. JavaScript的函数(function)

热门文章

  1. 中国父母的十大错误教育观
  2. 基于STAN的风力发电预测(Python代码实现)
  3. 单片机SPWM的产生
  4. 【笔记】NAC配置过程
  5. mysql添加索引语句_mysql 添加索引语句
  6. Java架构师的8个技术要求标准,你知道吗?
  7. 【转】AWS s3 V4签名算法
  8. 小朱的Java学习之旅--出发
  9. 公务员计算机技能大赛,公务员技能大赛
  10. 基于javaweb的家校通管理系统(java+ssm+jsp+bootstrap+echarts+mysql)