教你使用一行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中对list去重的多种方法
Sep 18 Python
Python中 Lambda表达式全面解析
Nov 28 Python
Python爬取qq music中的音乐url及批量下载
Mar 23 Python
python爬虫_微信公众号推送信息爬取的实例
Oct 23 Python
Python实现将通信达.day文件读取为DataFrame
Dec 22 Python
Python基础学习之函数方法实例详解
Jun 18 Python
python程序变成软件的实操方法
Jun 24 Python
Python异常处理例题整理
Jul 07 Python
python单例模式原理与创建方法实例分析
Oct 26 Python
Python Des加密解密如何实现软件注册码机器码
Jan 08 Python
在Python中如何使用yield
Jun 07 Python
python Tkinter模块使用方法详解
Apr 07 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
第十节--抽象方法和抽象类
2006/11/16 PHP
php实现按文件名搜索文件的远程文件查找器
2014/05/10 PHP
ThinkPHP框架里隐藏index.php
2016/04/12 PHP
php实现表单提交上传文件功能
2018/05/28 PHP
PHP设计模式概论【概念、分类、原则等】
2020/05/01 PHP
基于jquery的无缝循环新闻列表插件
2011/03/07 Javascript
JS获取浏览器版本及名称实现函数
2013/04/02 Javascript
JS控制输入框内字符串长度
2014/05/21 Javascript
JavaScript中匿名、命名函数的性能测试
2014/09/04 Javascript
JavaScript中eval()函数用法详解
2015/12/14 Javascript
JavaScript编写点击查看大图的页面半透明遮罩层效果实例
2016/05/09 Javascript
yarn与npm的命令行小结
2016/10/20 Javascript
浅谈jquery之on()绑定事件和off()解除绑定事件
2016/10/26 Javascript
详解Weex基于Vue2.0开发模板搭建
2017/03/20 Javascript
微信小程序实现YDUI的ScrollNav组件
2018/02/02 Javascript
vue自动化表单实例分析
2018/05/06 Javascript
对vue中v-on绑定自定事件的实例讲解
2018/09/06 Javascript
微信小程序实现时间进度条功能
2020/11/17 Javascript
js实现移动端吸顶效果
2020/01/08 Javascript
[04:48]DOTA2亚洲邀请赛林书豪为VGJ加油
2017/04/01 DOTA
Python使用pygame模块编写俄罗斯方块游戏的代码实例
2015/12/08 Python
Python的包管理器pip更换软件源的方法详解
2016/06/20 Python
Django基础之Model操作步骤(介绍)
2017/05/27 Python
python实现word 2007文档转换为pdf文件
2018/03/15 Python
python flask中静态文件的管理方法
2018/03/20 Python
Pyspider中给爬虫伪造随机请求头的实例
2018/05/07 Python
Python+pyplot绘制带文本标注的柱状图方法
2019/07/08 Python
Python爬取破解无线网络wifi密码过程解析
2019/09/17 Python
tensorflow实现二维平面模拟三维数据教程
2020/02/11 Python
美国领先的户外服装与装备用品店:Moosejaw
2016/08/25 全球购物
Gibson London官网:以地道的英国男装而著称
2019/12/06 全球购物
电信专业毕业生推荐信
2013/11/18 职场文书
政协常委会议主持词
2015/07/03 职场文书
《领导干部从政道德启示录》学习心得体会
2016/01/20 职场文书
文明医院的标语集锦!
2019/07/24 职场文书
PostgreSQL将数据加载到buffer cache中操作方法
2021/04/16 PostgreSQL