python小游戏代码200行左右,python小游戏代码1000行

news2024/11/27 20:19:07

大家好,小编为大家解答20行python代码的入门级小游戏的问题。很多人还不知道python小游戏代码200行左右,现在让我们一起来看看吧!

1994151-20200603101838285-866216841.jpg

大家小时候都玩过贪吃蛇吧?小编小时候可喜欢拿爸妈的手机玩了,厉害着呢!今天,小编就来用100行代码实现一个简易版的贪吃蛇。在网上,贪吃蛇教程蛮多的,但要安装蛮多库的,而且也不够清晰,今天的代码比较短,而且理解起来或者说你更改起来要简单一些。最终会实现效果如下:

1994151-20200603101942473-137749639.gif

1994151-20200603102006562-1185841395.jpg

基本准备

首先,我们需要安装pygame库,小编通过pip install pygame,很快就安装好了。在完成贪吃蛇小游戏的时候,我们需要知道整个游戏分为四部分:

1.游戏显示:游戏界面、结束界面

2.贪吃蛇:头部、身体、食物判断、死亡判断

3.树莓:随机生成

4.按键控制:上、下、左、右

1994151-20200603102102314-997416137.jpg

游戏显示

首先,我们来初始化pygame,定义颜色、游戏界面的窗口大小、标题和图标等。

1994151-20200603102121715-771942086.jpg

游戏结束界面,我们会显示“Game Over!”和该局游戏所得分数,相关代码如下:

1994151-20200603102142550-307345983.jpg

1994151-20200603102200520-1543379947.jpg

贪吃蛇和树莓

我们需要将整个界面看成许多20*20的小方块,每个方块代表一个单位,蛇的长度用单位来表示,同时我们采用列表的形式存储蛇的身体。同时,我们都知道,树莓的位置是随机的。所以,我们需要让树莓出现的位置是游戏界面中的随机位置,同时,每吃到一颗树莓,就需要重新生成一颗新的树莓,并且得分加1。相关初始化设置如下:

1994151-20200603102228538-16722188.jpg

如何控制贪吃蛇的运动轨迹呢,那么就需要按键控制了。我们通过键盘的↑↓←→和WSAD来控制,如果想直接退出游戏,则可以通过Esc键。这里需要强调的是,贪吃蛇里面是不能反方向运动,因此,我们需要进一步的增加限制条件:

1994151-20200603102250977-2058571712.jpg

方向设置好了,那么贪吃蛇蛇身变换怎么做啊?很简单,我们只需要根据方向变换一下坐标即可

1994151-20200603102309997-155732716.jpg

贪吃蛇游戏里面最重要的就是食物判断和死亡判断。首先是食物判断,我们通过键盘按键来决定贪吃蛇的走向,以便它能吃到树莓。如何判断贪吃蛇有没有吃到树莓呢?很简单,如果贪吃蛇蛇头的位置和树莓的位置重合了,也就是相同,那么贪吃蛇就吃到树莓了,否则没有。同时,一旦发生了树莓被吃的情况,立刻重新随机生成一个新的树莓。相关代码如下:

1994151-20200603102343622-2130701681.jpg

死亡判断则分为两类情况,一是触碰到了游戏界面的边界,二是贪吃蛇触碰到了自己的身体。一旦发生死亡,则触发gameover。

1994151-20200603102412842-606303184.jpg

贪吃蛇运动和吃掉树莓的过程中,游戏界面需要不断更新。同时,我们设置了游戏速度。

1994151-20200603102434963-1111012642.jpg

至此,我们就能完成一个贪吃蛇小游戏了。赶紧去实验一下吧!

联系我们

想了解更多关于python的问题,请联系我:

请添加微信:17706130227(江江老师)即可获取哦!

微信公众号:Python职场圈

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/850228.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring-2-深入理解Spring 注解依赖注入(DI):简化Java应用程序开发

今日目标 掌握纯注解开发依赖注入(DI)模式 学习使用纯注解进行第三方Bean注入 1 注解开发依赖注入(DI)【重点】 问题导入 思考:如何使用注解方式将Bean对象注入到类中 1.1 使用Autowired注解开启自动装配模式(按类型) Service public class StudentS…

redis基础(三十六)

安装redis、配置redis 目录 一、 概述 (一)NoSQL 1、类型 2、应用场景 (二)Redis 二、安装 (一)编译安装 (二)RPM安装 三、目录结构 四、命令解析 五、redis登录更改 1、…

三层交换实验

前言 在实际的企业应用中,我们会先建立不同的vlan把用户先隔开来。然后再通过三次交换机技术打通vlan直接的网络。 这样的目的如下: 隔离: 隔离是广播域,也就是隔离的是故障连通: 连通的是正常的通信 比如校园网&am…

在魔塔社区搭建通义千问-7B(Qwen-7B)流程

复制以下语句 python3 -m venv myvenvsource myvenv/bin/activatepip install modelscope pip install transformers_stream_generator pip install transformers pip install tiktoken pip install accelerate pip install bitsandbytestouch run.py vi run.py复制下面代码粘…

IMV5.0

背景内容: 经历了多个版本,基础内容在前面,可以使用之前的基础环境: v1: https://blog.csdn.net/wtt234/article/details/132139454 v2: https://blog.csdn.net/wtt234/article/details/132144907 v3&#…

04-8_Qt 5.9 C++开发指南_QTableWidget的使用

文章目录 1. QTableWidget概述2. 源码2.1 可视化UI设计2.2 程序框架2.3 qwintspindelegate.h2.4 qwintspindelegate.cpp2.5 mainwindow.h2.6 mainwindow.cpp 1. QTableWidget概述 QTableWidget是Qt中的表格组件类。在窗体上放置一个QTableWidget 组件后,可以在 PropertyEditor…

二、 MySQL 内部技术架构

二、 MySQL 内部技术架构 047 Mysql内部支持缓存查询吗? 当MySQL接收到客户端的查询SQL之后,仅仅只需要对其进行相应的权限验证之后,就会通过Query Cache来查找结果,甚至都不需要经过Optimizer模块进行执行计划的分析优化&…

产品缺陷管理软件:了解功能与选择要点

在现代社会,产品缺陷管理软件已经成为了各个行业必不可少的工具。它可以帮助企业更好地管理和解决产品中存在的缺陷问题,提高产品质量和客户满意度。然而,市场上存在着众多的产品缺陷管理软件,如何选择一款好用、适合自己的软件成…

Java实现数字加密

Java实现数字加密 需求分析代码实现小结Time 需求分析 1.首先,考虑方法是否需要接收数据处理? 需要一个4位数,至于是哪一个数,让方法的调用者传递。 所以,方法的参数,就是这个需要加密的四位数 2.接着&…

Unity 编辑器资源导入处理函数 OnPostprocessAudio :深入解析与实用案例

Unity 编辑器资源导入处理函数 OnPostprocessAudio 用法 点击封面跳转下载页面 简介 在Unity中,我们可以使用编辑器资源导入处理函数(OnPostprocessAudio)来自定义处理音频资源的导入过程。这个函数是继承自AssetPostprocessor类的&#xff…

电压信号转电流信号

用运算放大器配置电流,使其既能做同相放大电路,也能把电压转化为电流信号 1、当SW1断开情况下,OUT的电压仅受U1.3产生的同相放大电路有关,把0-3V输入转换成0-10V 2、当SW1闭合时 设输入INT的电压信号为Vi,负载电阻R8的…

04-7_Qt 5.9 C++开发指南_QTreeWidget和QDockWidget

文章目录 1. 实例功能简述2. 源码2.1 可视化UI设计2.2 mainwindow.h2.3 mainwindow.cpp 1. 实例功能简述 本节介绍 QTreeWidget、QDockWidget 的使用,以及用 QLabel 显示图片的方法。实例 samp4_8以QTreeWidget 为主要组件,创建一个照片管理器&#xff…

分享:2023新手做闲鱼电商如何轻松过万。详细步骤分享

科思创业汇 大家好,这里是科思创业汇,一个轻资产创业孵化平台。赚钱的方式有很多种,我希望在科思创业汇能够给你带来最快乐的那一种! 如果一个人想赚很多钱,他必须学会从小钱开始。如果他想赚一点钱,他必…

springboot(2)

springmvc 把软件系统分为3个基本部分:模型(Model)、视图(View)和控制器 (Controller)。 模型(Model):Model是由一个实体Bean实现的,是数据的载体…

Modbus TCP转Profibus DP网关modbus tcp报文解析

捷米JM-DPM-TCP网关。在Profibus总线侧作为主站,在以太网侧作为ModbusTcp服务器功能, 下面是介绍捷米JM-DPM-TCP主站网关组态工具的配置方法 2, Profibus主站组态工具安装 执行资料光盘中的安装文件setup64.exe或setup.exe安装组态工具。安装过程中一直…

画原型只需6招,快速成原型图!

画原型图,是产品设计过程中的重头戏。一个优秀的原型图,能把设计理念以视觉的形式呈现出来,让团队感受产品的交互和体验,明确下一步要做什么。那么,怎样才能画出高质量的原型图呢?下面就来介绍几招实用的技…

文件传输软件的市场现状和未来趋势

文件传输软件是一种能够在不同计算机之间高效、便捷、安全地传送各种类型的文件的应用软件。它是计算机领域中的一项重要技术,涉及到网络通信、数据加密、文件管理等多个方面。随着互联网和移动互联网的发展,文件传输软件的市场需求也日益增大&#xff0…

每日汇评:在50日移动均线下方,黄金的下行势头依然强劲

1、黄金价格连续第二天下跌,美元在周五的抛售后恢复稳定; 2、在中国和美国公布关键通胀数据之前,投资者保持谨慎; 3、在日相对强弱指数(RSI)偏弱的情况下,金价在持续跌破1925美元的情况下,可能跌至1910美…

嵌入式开发学习(STC51-3-点亮led)

内容 点亮第一个led; led闪烁; led流水灯; led简介 led即发光二极管,它具有单向导电性,通过5mA左右电流即可发光,电流越大,其亮度越强,但若电流过大,会烧毁二极管&…

Matplotlib引领数据图表绘制

Matplotlib引领数据图表绘制 前言图像得组成画图设置 figure设置标题设置坐标轴设置 label 和 legend添加注释使用子图中文乱码解决保存图形显示图形条形图直方图散点图饼状图 总结 前言 在数据科学领域,数据可视化是一种强大的工具,能够将复杂的数据转…