教你使用一行Python代码玩遍童年的小游戏


Posted in Python onAugust 23, 2021

写在前面

贪吃蛇,吃豆人,迷宫,井字游戏......这些小游戏我相信大家小的时候肯定玩过,或许在某个时段还沉迷过.
随着年龄的增长,这些小游戏离我们越来越远,但是我相信大家的童心还是一直在的
今天就分享一个真正可以玩耍的GitHub项目 --- free-python-games

安装与使用

python大家都懂的,安装第三方库非常简单

pip install freegames

Python

由于该项目中的所有游戏均是基于Python内置模块Turtle制作,所以没有太多依赖,安装不会有困难

安装完之后我们可以使用 python -m freegames list 来查看所有的游戏列表

教你使用一行Python代码玩遍童年的小游戏

图1

贪吃蛇

现在我们可以使用一行代码启动相关游戏,比如贪吃蛇snake

python -m freegames.snake

Python

复制

教你使用一行Python代码玩遍童年的小游戏

图2

贪吃蛇的玩法想必不用过多解释了,使用键盘⬆️⬇️⬅️➡️即可操控

吃豆人

吃豆人没玩过也应该听过,使用下面的代码可以启动一个类似吃豆人的游戏

python -m freegames.pacman

Python

复制

教你使用一行Python代码玩遍童年的小游戏

图3

Flappy

Flappy这个游戏和之前非常火的Flappy bird十分类似

教你使用一行Python代码玩遍童年的小游戏

图4

只需要更换游戏名即可启动

python -m freegames.flappy

Python

复制

教你使用一行Python代码玩遍童年的小游戏

图5

这次需要不断点击鼠标来控制绿色小圆点飞行,实测比flappy bird难度要更高一点

Memory

Memory翻译过来是记忆,该游戏给出一些宫格,点击每一个小宫格会显示背后藏的数字,但会快速消失,当你成功选中两个相同的数字之后就会显示为拼图,可玩性还是很高的

python -m freegames.memory

Python

复制

教你使用一行Python代码玩遍童年的小游戏

图8

迷宫

这个游戏应该就不用介绍了,找出走出迷宫对应的路径即可

python -m freegames.maze

Python

复制

教你使用一行Python代码玩遍童年的小游戏

图7

Tic Tac Toe

这个游戏我打赌你一定玩过,单击屏幕即可放置一个X或O,当三个同样的图案在一条直线上就赢了

python3 -m freegames.tictactoe

Python

复制

教你使用一行Python代码玩遍童年的小游戏

图8

查看源码

还有更多的游戏这里就不再一一介绍,Turtle我们并不陌生,所以当我们玩游戏时应该思考开发者是怎样实现的。使用下面的代码即可在当前目录下生成对应游戏的源码

"免费的python游戏将游戏和学习结合在一个灵活的环境中 减少编程等困难主题的压力"

python3 -m freegames copy snake

Python

复制

执行之后,在当前目录下就多了一个snake.py文件,打开就能查看游戏对应的逻辑

"""Snake, classic arcade game.

Exercises

1. How do you make the snake faster or slower?
2. How can you make the snake go around the edges?
3. How would you move the food?
4. Change the snake to respond to arrow keys.

"""

from turtle import *
from random import randrange
from freegames import square, vector

food = vector(0, 0)
snake = [vector(10, 0)]
aim = vector(0, -10)

def change(x, y):
    "Change snake direction."
    aim.x = x
    aim.y = y

def inside(head):
    "Return True if head inside boundaries."
    return -200 < head.x < 190 and -200 < head.y < 190

def move():
    "Move snake forward one segment."
    head = snake[-1].copy()
    head.move(aim)

    if not inside(head) or head in snake:
        square(head.x, head.y, 9, 'red')
        update()
        return

    snake.append(head)

    if head == food:
        print('Snake:', len(snake))
        food.x = randrange(-15, 15) * 10
        food.y = randrange(-15, 15) * 10
    else:
        snake.pop(0)

    clear()

    for body in snake:
        square(body.x, body.y, 9, 'black')

    square(food.x, food.y, 9, 'green')
    update()
    ontimer(move, 100)

setup(420, 420, 370, 0)
hideturtle()
tracer(False)
listen()
onkey(lambda: change(10, 0), 'Right')
onkey(lambda: change(-10, 0), 'Left')
onkey(lambda: change(0, 10), 'Up')
onkey(lambda: change(0, -10), 'Down')
move()
done()

Python

现在我们就可以学习源码并进行修改来实现更多的功能与玩法,抓紧试试吧!

到此这篇关于一行Python代码玩遍童年的小游戏的文章就介绍到这了,更多相关Python童年的小游戏内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
使用python遍历指定城市的一周气温
Mar 31 Python
利用Python将时间或时间间隔转为ISO 8601格式方法示例
Sep 05 Python
将字典转换为DataFrame并进行频次统计的方法
Apr 08 Python
Flask框架各种常见装饰器示例
Jul 17 Python
python使用matplotlib库生成随机漫步图
Aug 27 Python
Python将一个Excel拆分为多个Excel
Nov 07 Python
python实现感知器算法(批处理)
Jan 18 Python
python 一篇文章搞懂装饰器所有用法(建议收藏)
Aug 23 Python
详解使用Python下载文件的几种方法
Oct 13 Python
使用Python获取当前工作目录和执行命令的位置
Mar 09 Python
Django Admin设置应用程序及模型顺序方法详解
Apr 01 Python
详解MindSpore自定义模型损失函数
Jun 30 Python
一文搞懂Python Sklearn库使用
python库sklearn常用操作
Aug 23 #Python
Python使用psutil库对系统数据进行采集监控的方法
Aug 23 #Python
Python 中的Sympy详细使用
Aug 07 #Python
Anaconda配置各版本Pytorch的实现
Aug 07 #Python
python开发的自动化运维工具ansible详解
Python初识逻辑与if语句及用法大全
Aug 07 #Python
You might like
用PHP实现登陆验证码(类似条行码状)
2006/10/09 PHP
php不用内置函数对数组排序的两个算法代码
2010/02/08 PHP
基于PHP的简单采集数据入库程序【续篇】
2014/07/30 PHP
PHPExcel读取EXCEL中的图片并保存到本地的方法
2015/02/14 PHP
PHP实现的方程求解示例分析
2016/11/11 PHP
PHP用mysql_insert_id()函数获得刚插入数据或当前发布文章的ID
2016/11/25 PHP
wordpress网站转移到本地运行测试的方法
2017/03/15 PHP
php及codeigniter使用session-cookie的方法(详解)
2017/04/06 PHP
php7下的filesize函数
2019/09/30 PHP
对联广告js flash激活
2006/10/19 Javascript
用javascript实现改变TEXTAREA滚动条和按钮的颜色,以及怎样让滚动条变得扁平
2007/04/20 Javascript
JavaScript国旗变换效果代码
2008/08/13 Javascript
jquery+正则实现统一的表单验证
2015/09/20 Javascript
js自调用匿名函数的三种写法(推荐)
2016/08/19 Javascript
Jquery表单验证失败后不提交的解决方法
2016/10/18 Javascript
JS判断指定dom元素是否在屏幕内的方法实例
2017/01/23 Javascript
详解vuex状态管理模式
2018/11/01 Javascript
jquery+css3实现的经典弹出层效果示例
2020/05/16 jQuery
vue动态加载SVG文件并修改节点数据的操作代码
2020/08/17 Javascript
利用Fn.py库在Python中进行函数式编程
2015/04/22 Python
Python实现提取谷歌音乐搜索结果的方法
2015/07/10 Python
python实现给数组按片赋值的方法
2015/07/28 Python
python基础入门学习笔记(Python环境搭建)
2016/01/13 Python
Python实现二维有序数组查找的方法
2016/04/27 Python
python字典键值对的添加和遍历方法
2016/09/11 Python
python实现祝福弹窗效果
2019/04/07 Python
浅析python redis的连接及相关操作
2019/11/07 Python
Python使用matplotlib绘制Logistic曲线操作示例
2019/11/28 Python
使用 django orm 写 exists 条件过滤实例
2020/05/20 Python
Python 使用生成器代替线程的方法
2020/08/04 Python
CSS3制作气泡对话框的实例教程
2016/05/10 HTML / CSS
牵手50新加坡:专为黄金岁月的单身人士而设的交友网站
2020/08/16 全球购物
上海雨人软件技术开发有限公司测试题
2015/07/14 面试题
个人自我鉴定怎么写?
2019/07/01 职场文书
英语版自我评价,35句话轻松搞定
2019/10/08 职场文书
Python Pycharm虚拟下百度飞浆PaddleX安装报错问题及处理方法(亲测100%有效)
2021/05/24 Python