教你使用一行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脚本自动生成需要文件实例代码
Feb 04 Python
用python结合jieba和wordcloud实现词云效果
Sep 05 Python
Python告诉你木马程序的键盘记录原理
Feb 02 Python
对python 多线程中的守护线程与join的用法详解
Feb 18 Python
PyQt5下拉式复选框QComboCheckBox的实例
Jun 25 Python
简单分析python的类变量、实例变量
Aug 23 Python
python画微信表情符的实例代码
Oct 09 Python
python3常用的数据清洗方法(小结)
Oct 31 Python
Python中filter与lambda的结合使用详解
Dec 24 Python
Python log模块logging记录打印用法解析
Jan 20 Python
python接入支付宝的实例操作
Jul 20 Python
python 多进程和协程配合使用写入数据
Oct 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获取文章上一页与下一页的方法
2014/12/01 PHP
php 数组随机取值的简单实例
2016/05/23 PHP
原生javascript获取元素样式属性值的方法
2010/12/25 Javascript
script的async属性以非阻塞的模式加载脚本
2013/01/15 Javascript
javascript中自定义对象的属性方法分享
2013/07/12 Javascript
JQuery中对Select的option项的添加、删除、取值
2013/08/25 Javascript
使用jquery解析XML的方法
2014/09/05 Javascript
jquery判断密码强度的验证代码
2020/04/22 Javascript
Windows安装Node.js报错:2503、2502的解决方法
2017/10/25 Javascript
node基于puppeteer模拟登录抓取页面的实现
2018/05/09 Javascript
layui加载表格,绑定新增,编辑删除,查看按钮事件的例子
2019/09/06 Javascript
小程序选项卡以及swiper套用(跨页面)
2020/06/19 Javascript
Vite和Vue CLI的优劣
2021/01/30 Vue.js
理解Python中函数的参数
2015/04/27 Python
Python中使用partial改变方法默认参数实例
2015/04/28 Python
简单介绍Python中用于求最小值的min()方法
2015/05/15 Python
Python基于回溯法子集树模板解决找零问题示例
2017/09/11 Python
python实现批量按比例缩放图片效果
2018/03/30 Python
Python基于百度AI的文字识别的示例
2018/04/21 Python
Django框架实现的普通登录案例【使用POST方法】
2019/05/15 Python
python实现在cmd窗口显示彩色文字
2019/06/24 Python
Django文件上传与下载(FileFlid)
2019/10/06 Python
波兰品牌内衣及泳装网上商店:Astratex.pl
2017/02/03 全球购物
马来西亚时装购物网站:ZALORA马来西亚
2017/03/14 全球购物
Tommy Hilfiger澳洲官网:美国高端休闲领导品牌
2020/12/16 全球购物
家长对小学生的评语
2014/01/28 职场文书
《永远的白衣战士》教学反思
2014/04/25 职场文书
支行行长竞聘演讲稿
2014/05/15 职场文书
服务承诺书怎么写
2014/05/24 职场文书
民事授权委托书范文
2014/08/02 职场文书
总账会计岗位职责
2015/04/02 职场文书
公司业务员管理制度
2015/08/05 职场文书
儿童诗两首教学反思
2016/02/23 职场文书
合理缓解职场压力,让你随时保持最佳状态!
2019/06/21 职场文书
Redis集群的关闭与重启操作
2021/07/07 Redis
Python Pytorch查询图像的特征从集合或数据库中查找图像
2022/04/09 Python