当前位置: 首页 > news >正文

【GUI】-- 13 贪吃蛇小游戏之食物及成绩判断

GUI编程

04 贪吃蛇小游戏

4.4 第四步:食物及成绩判断

首先,添加食物与分数的数据定义:

	//食物的坐标int foodX;int foodY;Random random = new Random();//积分面板数据结构int score;

在初始化方法中,添加(画出)食物与分数:

		//将食物随机分布于游戏界面foodX = 25 + 25 * random.nextInt(34);foodY = 75 + 25 * random.nextInt(24);score = 0;  //定义初始得分

绘制静态面板中,画出积分面板、食物,并增加游戏失败设定显示的语句:

		//画出积分面板g.setColor(Color.white);g.setFont(new Font("宋体", Font.BOLD, 18));g.drawString("长度  " + length, 750, 30);g.drawString("得分  " + score, 750, 55);//画出食物Data.food.paintIcon(this, g, foodX, foodY);//绘制当前游戏状态if (!isStart) {g.setColor(Color.white);g.setFont(new Font("宋体", Font.BOLD, 40));g.drawString("按下空格开始游戏", 270, 300);}if (isFail) {g.setColor(Color.red);g.setFont(new Font("宋体", Font.BOLD, 40));g.drawString("游戏失败,按下空格重新开始", 220, 300);}

在键盘监听事件中,添加空格对于游戏失败之后重新开始游戏的判断;同时,改进当前蛇头方向与按键方向相反时新的蛇头方向的判定:

//键盘监听事件@Overridepublic void keyPressed(KeyEvent e) {int keyCode = e.getKeyCode();  //获取键盘按键if (keyCode == KeyEvent.VK_SPACE) {if (isFail) {  //重新开始isFail = false;init();} else {  //正常开始isStart = !isStart;repaint();}}//键盘监听到按键后画上对应方向的蛇头if (keyCode == KeyEvent.VK_UP && !direction.equals("D")) {direction = "U";} else if (keyCode == KeyEvent.VK_DOWN && !direction.equals("U")) {direction = "D";} else if (keyCode == KeyEvent.VK_LEFT && !direction.equals("R")) {direction = "L";} else if (keyCode == KeyEvent.VK_RIGHT && !direction.equals("L")) {direction = "R";}}

游戏事件的监听中,添加是否吃到食物与游戏失败的判定:

		   //判断蛇头是否吃到食物if (snakeX[0] == foodX && snakeY[0] == foodY) {length++;foodX = 25 + 25 * random.nextInt(34);foodY = 75 + 25 * random.nextInt(24);score += 10;}//失败判定for (int i = 1; i < length; i++) {if (snakeX[0] == snakeX[i] && snakeY[0] == snakeY[i]) {isFail = true;break;}}

运行结果:

游戏默认界面:

图1

游戏运行中:

图2

游戏失败:

图3

至此,简单的贪吃蛇小游戏已全部编写完毕。


相关文章:

【GUI】-- 13 贪吃蛇小游戏之食物及成绩判断

GUI编程 04 贪吃蛇小游戏 4.4 第四步&#xff1a;食物及成绩判断 首先&#xff0c;添加食物与分数的数据定义&#xff1a; //食物的坐标int foodX;int foodY;Random random new Random();//积分面板数据结构int score;在初始化方法中&#xff0c;添加(画出)食物与分数&…...

洗地机哪个牌子好用?洗地机选购攻略

传统的清洁方式都是扫把拖把的结合&#xff0c;既繁琐也劳累&#xff0c;每次清洁完后还得累的腰酸背痛的&#xff0c;像厨房这种地方甚至会不容易清洁干净&#xff0c;总感觉地板灰蒙蒙的。洗地机的诞生就很好的解决了这些问题&#xff0c;不用一遍遍的重复扫地拖地擦地&#…...

节能灯和led灯哪个更护眼?精选高品质的LED护眼台灯

节能灯和LED灯相比&#xff0c;我认为LED灯会更加护眼一些&#xff0c;不过想要更护眼建议选择LED的护眼台灯会更好&#xff01; 大家都知道光亮对于我们来说是非常重要的&#xff0c;尤其是夜晚的时候&#xff0c;往往要借助一些灯具来提供充足的照明。对于孩子而言&#xff0…...

大数据管家 DataSophon 1.2介绍

DataSophon 1.2...

vue实现爱心形状的复选框

目录 HTML代码&#xff1a; CSS代码&#xff1a; Vue代码&#xff1a; 这个例子使用了CSS来创建一个爱心形状的复选框&#xff0c;并使用Vue来控制其选中状态。点击复选框时&#xff0c;将调用toggleChecked方法来切换checked属性的值&#xff0c;以控制复选框的状态。 以下…...

珠江啤酒坚持创新,“酿”造电子化采购平台

珠江啤酒 广州珠江啤酒股份有限公司&#xff08;简称“珠江啤酒”&#xff09;是一家以啤酒酿造产业和啤酒文化产业“双主业”协同发展、包装产业配套发展的大型现代化国有控股企业。2010年&#xff0c;在深交所上市&#xff0c;下属企业16家&#xff0c;其中啤酒企业12家&…...

数据仓库模式之详解 Inmon 和 Kimball

目录 一、前言 二、企业信息工厂&#xff08;Inmon&#xff09; 2.1 概念 2.2 主要组件 2.3 流程 三、多维数据仓库&#xff08;Kimball&#xff09; 3.1 概念 3.2 核心组件 3.3 流程 四、异同及用途对比 4.1 异同对比 4.2 特征比较 一、前言 大部分关于数据仓库构建…...

斐波那契数列数列系列问题详解

斐波那契数列数列是我们学习递归的入门问题&#xff0c;是一种非常经典的题型&#xff0c;也衍生出了一些更复杂的题型&#xff0c;这一节就让我们彻底理解斐波那契数列系列问题。 一、概念介绍 1、什么是斐波那契数列&#xff1f; 斐波那契数列&#xff08;Fibonacci sequenc…...

Day38力扣打卡

打卡记录 网格中的最小路径代价&#xff08;动态规划&#xff09; 链接 class Solution:def minPathCost(self, grid: List[List[int]], moveCost: List[List[int]]) -> int:m, n len(grid), len(grid[0])f [[0x3f3f3f3f3f] * n for _ in range(m)]f[0] grid[0]for i i…...

【C语言:深入理解指针二】

文章目录 1. 二级指针2. 指针数组3. 字符指针变量4. 数组指针变量5. 二维数组传参的本质6. 函数指针变量7. 函数指针数组8. 转移表9. 回调函数10. qsort函数的使用与模拟实现 1. 二级指针 我们知道&#xff0c;指针变量也是变量&#xff0c;它也有自己的地址&#xff0c;使用什…...

前端实现表格生成序号001、002、003自增

我们最终想要实现的效果如图&#xff0c;从后端获取数据之后&#xff0c;不使用data中的id&#xff0c;而是使用自己生成的按照顺序自增的序号id。 script <template><el-table :data"sticker" border style"width: 100%" id"stickerList&q…...

【Django-01】 视图函数和视图类

视图函数 作用详解视图函数的特点视图类实际开发怎么用一个无意义的demo 作用 用于返回给前端数据详解 def list(request):"""1.普通的视图函数 request是HttpRequest 函数2.且必须用request.GET|request.POST 指定方法是什么方法3.返回值不能用 rest_framewor…...

编译安装报错:configure: error: cannot guess build type; you must specify one

1、编译安装报错 configure: error: cannot guess build type; you must specify one 该报错信息翻过过来的意思是&#xff1a;无法猜测编译 操作系统类型,请指定一个 2、解决方法 在原本的编译安装语句后面加上一句&#xff1a; “--buildarm-linux ” &#xff0c;这句话…...

2311rust,到66版本更新

1.60.0稳定版 基于源码的代码覆盖率 rustc中已稳定支持基于LLVM的覆盖率检测.可用-Cinstrument-coverage重构代码,如: RUSTFLAGS"-C instrument-coverage" cargo build之后,运行生成的二进制文件,它在当前目录中生成一个default.profraw文件.环境变量可覆盖路径和…...

JOSEF约瑟 过电流继电器 JL15-300/11 触点形式一开一闭 板前接线

系列型号 JL15-1.5/11电流继电器JL15-2.5/11电流继电器 JL15-5/11电流继电器JL15-10/11电流继电器 JL15-15/11电流继电器JL15-20/11电流继电器 JL15-30/11电流继电器JL15-40/11电流继电器 JL15-60/11电流继电器JL15-80/11电流继电器 JL15-100/11电流继电器JL15-150/11电流继电…...

postman设置接口关联这样做,薪资直接涨3k

postman设置接口关联 在实际的接口测试中&#xff0c;后一个接口经常需要用到前一个接口返回的结果&#xff0c; 从而让后一个接口能正常执行&#xff0c;这个过程的实现称为关联。 在postman中实现关联操作的步骤如下&#xff1a; 1、利用postman获取上一个接口指定的返回值…...

Java常见的bug

Java是一种强类型、面向对象的编程语言,有一些常见的bug或错误类型,尽管具体的bug会因项目和代码的不同而有所差异。以下是一些Java开发中常见的bug类型: 空指针异常(NullPointerException): 尝试在一个空对象上调用方法或访问属性时会引发空指针异常。这通常发生在没有对…...

gitea仓库镜像同步至gitlab

1、参考文档&#xff1a;仓库镜像 | Gitea Documentation 2、错误一&#xff1a;账号密码错误问题 解决方法&#xff1a; 出现以上错误为第三步用户名&#xff08;Oauth2应用名称&#xff09;或者密码&#xff08;Gitlab个人访问令牌&#xff09;错误。 1&#xff09;如下图1…...

服务器不备案的影响

服务器不备案的影响 不备案&#xff0c;不能解析域名。 但凡你的域名绑定到的是国内地址&#xff0c;你不备案&#xff0c;这个域名解析未来就可能会失效。 &#xff08;你借用的其它网站的子域名情况除外&#xff0c;因为他们的网站本身主域名有可能已经备案。&#xff09; …...

5 个适用于 Linux 的开源日志监控和管理工具

当Linux等操作系统运行时&#xff0c;会发生许多事件和在后台运行的进程&#xff0c;以实现系统资源的高效可靠的使用。这些事件可能发生在系统软件中&#xff0c;例如 init 或 systemd 进程或用户应用程序&#xff0c;例如 Apache、MySQL、FTP 等。 为了了解系统和不同应用程序…...

微生物组数据分析终极指南:如何用microeco包快速完成生态统计分析

微生物组数据分析终极指南&#xff1a;如何用microeco包快速完成生态统计分析 【免费下载链接】microeco An R package for downstream data analysis of microbiome omics data 项目地址: https://gitcode.com/gh_mirrors/mi/microeco microeco是一个功能强大的R语言包…...

思源宋体TTF终极指南:7种字重开源字体快速配置与应用

思源宋体TTF终极指南&#xff1a;7种字重开源字体快速配置与应用 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 思源宋体TTF作为Adobe与Google联合开发的开源中文字体&#xff0c;提供…...

9字重开源字体解决方案:Outfit字体从入门到精通实战指南

9字重开源字体解决方案&#xff1a;Outfit字体从入门到精通实战指南 【免费下载链接】Outfit-Fonts The most on-brand typeface 项目地址: https://gitcode.com/gh_mirrors/ou/Outfit-Fonts 在当今数字化品牌设计时代&#xff0c;一款优秀的字体不仅关乎美观&#xff0…...

手把手调试UEFI文本模式:用OVMF和QEMU探索GraphicsConsoleDxe支持的行列数

深入解析UEFI文本模式&#xff1a;从像素到字符的转换机制 在UEFI固件开发领域&#xff0c;图形显示系统的调试一直是工程师们面临的核心挑战之一。当我们在OVMF模拟环境中看到清晰的命令行界面时&#xff0c;背后实际上经历了一系列复杂的像素到字符的转换过程。本文将带您深…...

别再只会用top了!这5个Linux内存监控命令,帮你快速定位服务器卡顿元凶

深度剖析Linux内存监控&#xff1a;5个高阶命令解决服务器卡顿难题 当服务器突然响应迟缓&#xff0c;终端操作卡顿得像老式打字机&#xff0c;大多数工程师的第一反应是打开top命令。这个经典工具确实能提供基础的系统负载概览&#xff0c;但就像用体温计诊断复杂疾病一样&am…...

如何使用GPT-Repository-Loader:将代码仓库转换为LLM友好格式的完整指南

如何使用GPT-Repository-Loader&#xff1a;将代码仓库转换为LLM友好格式的完整指南 【免费下载链接】gpt-repository-loader Convert code repos into an LLM prompt-friendly format. Mostly built by GPT-4. 项目地址: https://gitcode.com/gh_mirrors/gp/gpt-repository-…...

D14: 周复盘:人是核心,工具是杠杆

文章目录 D14: 周复盘:人是核心,工具是杠杆 🎯 本周回顾:都发生了什么? 第一周的大事记 数据不会说谎 核心复盘内容 复盘维度一:人的层面——谁在进步,谁在旁观? 复盘维度二:工具层面——哪些工具真的在产生价值? 复盘维度三:流程层面——AI 改变了什么,没改变什么…...

WarcraftHelper终极优化指南:5个简单步骤让魔兽争霸3从卡顿到180帧流畅运行

WarcraftHelper终极优化指南&#xff1a;5个简单步骤让魔兽争霸3从卡顿到180帧流畅运行 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 魔兽争霸3作为…...

如何从零打造你的第一把模块化机械键盘:HelloWord-Keyboard终极指南

如何从零打造你的第一把模块化机械键盘&#xff1a;HelloWord-Keyboard终极指南 【免费下载链接】HelloWord-Keyboard 项目地址: https://gitcode.com/gh_mirrors/he/HelloWord-Keyboard 你是否厌倦了千篇一律的机械键盘设计&#xff1f;是否曾幻想拥有一把能完全按照自…...

【稀缺首发】2024 Dev Containers兼容性矩阵图:Node.js 20/Python 3.12/Rust 1.78全版本支持状态+已验证镜像清单

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Dev Containers兼容性矩阵图的权威发布与核心价值 Dev Containers&#xff08;开发容器&#xff09;正成为现代云原生开发工作流的关键基础设施。为统一生态标准、降低环境配置成本&#xff0c;OpenDev…...