python简单小游戏代码贪吃蛇_plc程序做贪吃蛇游戏

python简单小游戏代码贪吃蛇_plc程序做贪吃蛇游戏贪吃蛇小游戏相信80、90后小时候肯定都玩过,那么你知道如果通过Python来实现吗?今天小千就来教大家。首先给大家看一下最终的呈现效果:基本准备首先,我们需要安装pygame库,小编通过pipinstallpygame,很快就安装好了。在完成贪吃蛇小游戏的时候,我们需要知道整个游戏分为四部分:1.游戏显示:游戏界面、结束界面2.贪吃蛇:头部、身体、食物判断、死亡判断3.树莓:随机生成4.按键控制:上、下、左、右游戏显示首先,我们来初始化pygame,定义颜色、游戏界面的窗口大小、标题

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

贪吃蛇小游戏相信80、90后小时候肯定都玩过,那么你知道如果通过Python来实现吗?今天小千就来教大家。首先给大家看一下最终的呈现效果:
在这里插入图片描述

基本准备

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

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

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

3.树莓:随机生成

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

游戏显示

首先,我们来初始化pygame,定义颜色、游戏界面的窗口大小、标题和图标等。
在这里插入图片描述

游戏结束界面,我们会显示“Game Over!”和该局游戏所得分数,相关代码如下:
在这里插入图片描述

贪吃蛇和树莓

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

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

方向设置好了,那么贪吃蛇蛇身变换怎么做啊?很简单,我们只需要根据方向变换一下坐标即可。
在这里插入图片描述

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

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

贪吃蛇运动和吃掉树莓的过程中,游戏界面需要不断更新。同时,我们设置了游戏速度。
在这里插入图片描述

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

本文来自千锋教育,转载请注明出处。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/169545.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • char转换成string java_int类型转换成char类型

    char转换成string java_int类型转换成char类型类型转换:char转int源码packagecom.onlydemo.javalang;/***类型转换:char转int**1.char-‘0’将char转int*2.Character.getNumericValue(charch)将char转int**@authorwww.only-demo.com**/classCha…

  • 用了vue还需要jquery吗_vue与react的区别

    用了vue还需要jquery吗_vue与react的区别⾸先呢jquery他是⽤js封装的⼀个类库,主要是为了⽅便操作dom元素,⽽vue他是⼀个框架,并且呢,他会从真实dom构建出⼀个虚拟的dom树,通过di!算法渲染只发⽣改变的dom元素,其他的相同的dom元素不⽤在重新渲染.⽽使⽤jquery去改变dom元素的时候,即使有相同的dom元素也会重新渲染,jq重点操作dom,而vue重点操作数据。以上就是我对vue和jquery区别的理解….

    2022年10月15日
  • vue(22)Vuex的安装与使用[通俗易懂]

    vue(22)Vuex的安装与使用[通俗易懂]前言每一个Vuex应用的核心就是store(仓库)。store基本上就是一个容器,它包含着你的应用中大部分的状态(state)。Vuex和单纯的全局对象有以下两点不同:Vuex的状态存

  • 数据库分区分表和提升性能「建议收藏」

    数据库分区分表和提升性能「建议收藏」http://my.oschina.NET/tinyframework/blog/186583序言一直在做企业应用,目前要做一些互联网应用,当然只是应用是放在互联网的,数据量距离真正的互联网应用还是有相当大的差距的。但是不可避免的,在数据库出现瓶颈的情况还是有的,现在做互联网上的应用,当然也要未雨绸缪,要考虑数据量大的时候的解决方案。这个目前开源的商用的也都有不少解

  • 神器 Codelf !

    神器 Codelf !公众号关注“五分钟学算法”设为“星标”,带你挖掘更多开发神器!大家好,我是小G。程序员最头疼的事情除了头发以外就是给变量或函数命名,一开始学编程语言的时候还可以abc、a1、x2…

  • ftp客户端发起对ftp服务器_ftp登陆命令

    ftp客户端发起对ftp服务器_ftp登陆命令FTP是一个C/S类型的软件,连接服务端需要FTP客户端才能完成,常见的FTP客户端有以下几种:浏览器:可以通过浏览器中输入ftp://ip或者ftp://域名的方式3分钟了解计算机发展历史-组团学来访问FTP自带客户端:命令行下可以使用ftp命令去连接三方客户端:FileZilla8uftp图形软件或者文本界面的lftp等三种方式中,文本界面是比较麻烦的,无法鼠标流。所以我重点给大家讲解一…

    2022年10月21日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号