JAVA自制小游戏之推箱子
给家里孩子实现益智游戏开发,教会他怎么使用编程。以下是一个简单的推箱子游戏的Java实现,包含两个关卡:
这个程序包含两个关卡,每个关卡都是一个字符串表示的地图。游戏会提示玩家输入移动方向(WASD),然后根据输入的方向移动玩家。如果玩家成功将所有的箱子推到目标位置,游戏就会结束。 以下是推箱子游戏特点
-
游戏地图与元素定义
- 字符常量:游戏中使用了一系列字符常量来代表不同的游戏元素,如WALL(墙壁)、PLAYER(玩家)、BOX(箱子)、TARGET(目标)和EMPTY(空位)。这些常量简化了代码并提高了可读性。
- 关卡字符串:LEVEL1和LEVEL2是两个字符串,分别代表了游戏的两关。每个字符在字符串中的位置对应地图上的一个格子,这样的设计方便了地图的快速修改和扩展。
-
主要游戏逻辑
- playLevel方法:这是游戏的核心方法,负责解析关卡字符串,打印初始地图,然后进入一个循环,直到关卡完成。在循环中,玩家输入移动方向,如果移动有效则执行移动并更新地图显示。
- isLevelCompleted方法:检查关卡是否已完成,即所有箱子都已到达目标位置。
- moveValid方法:验证玩家指定的移动是否有效。这包括检查新位置是否是墙壁,以及如果是箱子,箱子的新位置是否有效。
- movePlayer方法:根据玩家的输入移动玩家和箱子。首先找到玩家的当前位置,然后根据输入的方向计算新的位置,并确保移动后的位置上没有障碍物。
-
辅助功能
- parseLevel方法:将关卡字符串转换为二维字符数组,便于后续的处理和显示。
- printMap方法:打印当前游戏地图的状态,用于显示游戏进度。
- movePlayer方法:处理玩家的移动,包括玩家和箱子的位置更新。
-
用户交互:
- 代码通过
Scanner类从用户那里获取输入,支持WASD方向键来控制玩家移动。这种设计使得游戏操作直观易懂。
- 代码通过
-
相关文章:
JAVA自制小游戏之推箱子
给家里孩子实现益智游戏开发,教会他怎么使用编程。以下是一个简单的推箱子游戏的Java实现,包含两个关卡: 这个程序包含两个关卡,每个关卡都是一个字符串表示的地图。游戏会提示玩家输入移动方向(WASD),然后根据输入的方向移动玩家。如果玩家成功将所有的箱子推到目标位…...
Media Encoder 2024 for Mac媒体编码器安装教程ME2024安装包下载
安装 步骤 1,双击打开下载好的安装包。 2,选择install ame_24...双击打开启动安装程序。 3,点击install。 4,输入电脑密码。 5,软件安装中... 6,安装结束点击好。 7,返回打开的镜像 选择激活补…...
B2120 单词的长度
单词的长度 题目描述 输入一行单词序列,相邻单词之间由 1 1 1 个或多个空格间隔,请对应地计算各个单词的长度。 注意:如果有标点符号(如连字符,逗号),标点符号算作与之相连的词的一部分。没…...
分布式事务解决方案(最终一致性【可靠消息解决方案】)
可靠消息最终一致性解决方案 可靠消息最终一致性分布式事务解决方案指的是事务的发起方执行完本地事务之后,发出一条消息,事务的参与方,也就是消息的消费者一定能够接收到这条消息并且处理完成,这个方案强调的是只要事务发起方将消…...
AI预测福彩3D采取888=3策略+和值012路一缩定乾坤测试5月28日预测第4弹
昨天的第二套方案已命中,第一套方案由于杀了对子,导致最终出错。 今天继续基于8883的大底,使用尽可能少的条件进行缩号,同时,同样准备两套方案,一套是我自己的条件进行缩号,另外一套是8883的大底…...
JAVA:深入了解JAVA中的23种设计模式(三)- 行为型模式(下)
一、前言 在前三篇 《深入了解JAVA中的23种设计模式(一)- 创建型模式》 《深入了解JAVA中的23种设计模式(二)- 结构型模式》 《深入了解JAVA中的23种设计模式(三)- 行为型模式(上)》…...
微信小程序【WXML】
wxml wei xin markup language 类似于html 文档 数据绑定 小程序中使用{{}} 来进行数据绑定到模板中,如: wxml中的动态数据全部来自js中的data 简单绑定 //wxml <view> {{text }}</view>// index.js Page({data: {text: hello world}, })属性绑定…...
基于python实现的深度学习的车牌识别系统
基于python实现的深度学习的车牌识别系统 开发语言:Python 数据库:MySQL所用到的知识:Django框架工具:pycharm、Navicat、Maven 系统功能实现 登录页面 在车牌识别系统当中肯定是有登录的。怎么说呢,登录页面其实还是和最初的设…...
SQL试题使得每个学生 按照姓名的字⺟顺序依次排列 在对应的⼤洲下⾯
学⽣地理信息报告 学校有来⾃亚洲、欧洲和美洲的学⽣。 表countries 数据如下: namecontinentJaneAmericaPascalEuropeXiAsiaJackAmerica 1、编写解决⽅案实现对⼤洲(continent)列的 透视表 操作,使得每个学生 按照姓名的字⺟顺…...
kafka3.6.1版本学习
kafka目录结构 bin linux系统下可执行脚本文件 bin/windows windows系统下可执行脚本文件 config 配置文件 libs 依赖类库 licenses 许可信息 site-docs 文档 logs 服务日志 启动ZooKeeper 进入Kafka解压缩文件夹的config目录,修改zookeeper.properties配置文件 #t…...
移除链表元素-力扣
题目 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val val 的节点,并返回 新的头节点 。 示例 1: 输入:head [1,2,6,3,4,5,6], val 6 输出:[1,2,3,4,5]示例 2: 输入&…...
HTTP请求拦截器链
文章目录 HTTP请求拦截器链需求定义写一个Controller方法接口写三个http请求拦截器把拦截器加入到配置中,并且配置拦截规则在postman里面发送请求,看下测试结果是否正确 HTTP请求拦截器链 需求定义 我们写一个包含三个HTTP请求拦截器的拦截器链&#x…...
再创佳绩丨达梦数据库一体机荣获2024数字中国创新大赛·信创赛道总决赛一等奖
5月24日,第七届数字中国建设峰会在福州盛大开幕,峰会内容安排包含开幕式、主论坛、分论坛、数字中国创新大赛、现场体验区及成果发布和专业工作会议等。武汉达梦数据库股份有限公司(以下简称达梦数据)受邀参加并在展、会、赛等多个环节深度参与。达梦全栈…...
数据分析之统计学基础
数据分析是现代企业和科研中不可或缺的一部分,而统计学是数据分析的基石。在本篇博客中,我们将介绍统计学的基础知识,涵盖数据类型、描述性统计(集中趋势、离散程度和偏差程度),并通过代码实例加以说明。 …...
Web3 游戏周报(5.19 - 5.25)
【5.19 - 5.25】Web3 游戏行业动态: Arbitrum 已开启 “2 亿枚 ARB 游戏催化剂计划”的提案投票。 STEPN 在官方 X 宣布将推出全新社交健身应用 STEPN GO。 Oasys 正式推出《足球小将》漫改 Web3 游戏《Captain Tsubasa-RIVALS-》。 Gala Games :已销…...
通过el-tree自定义渲染网页版工作目录,实现鼠标悬浮显示完整名称、用icon区分文件和文件夹等需求
目录 一、通过el-tree自定义渲染网页版工作目录 1.1、需求介绍 1.2、使用el-tree生成文档目录 1.2.1、官方基础用法 ①效果 ②代码: 1.2.2、自定义文档目录(实现鼠标悬浮显示完整名称、用icon区分文件和文件夹) ①效果(直接效…...
C语言 | Leetcode C语言题解之第101题对称二叉树
题目: 题解: /*** Definition for a binary tree node.* struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* };*/ bool isSymmetric(struct TreeNode* root) {if (root NULL) return true;//如果根为空直接…...
TTime:截图翻译/OCR
日常网页翻译Translate Web Pages完全足够,TTime最重要的功能,还是截图翻译,还有个厉害的功能,就是静默OCR,相比之前的分享的识字精灵效率更高。 软件使用 打开软件,点击翻译源设置,建议勾选一…...
【哈希】闭散列的线性探测和开散列的哈希桶解决哈希冲突(C++两种方法模拟实现哈希表)(1)
🎉博主首页: 有趣的中国人 🎉专栏首页: C进阶 🎉其它专栏: C初阶 | Linux | 初阶数据结构 小伙伴们大家好,本片文章将会讲解 哈希函数与哈希 之 闭散列的线性探测解决哈希冲突 的相关内容。 如…...
四川农业大学Java实训项目圆满收官,汇智知了堂引领学子实践创新
近日,四川农业大学与汇智知了堂共同举办的Java实训项目正式迎来了项目汇报阶段。本次实训是汇智知了堂在高等教育领域深化校企合作、推动产教融合的一次重要实践,旨在为广大学子提供一个将理论知识与实际操作相结合的平台。 在实训过程中,汇…...
手游刚开服就被攻击怎么办?如何防御DDoS?
开服初期是手游最脆弱的阶段,极易成为DDoS攻击的目标。一旦遭遇攻击,可能导致服务器瘫痪、玩家流失,甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案,帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...
C++_核心编程_多态案例二-制作饮品
#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为:煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例,提供抽象制作饮品基类,提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...
【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】
1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件(System Property Definition File),用于声明和管理 Bluetooth 模块相…...
【JavaSE】绘图与事件入门学习笔记
-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角,以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素;第二个是y坐标,表示当前位置为垂直方向,距离坐标原点y个像素。 坐标体系-像素 …...
【Java学习笔记】BigInteger 和 BigDecimal 类
BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点:传参类型必须是类对象 一、BigInteger 1. 作用:适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...
AI病理诊断七剑下天山,医疗未来触手可及
一、病理诊断困局:刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断",医生需通过显微镜观察组织切片,在细胞迷宫中捕捉癌变信号。某省病理质控报告显示,基层医院误诊率达12%-15%,专家会诊…...
IP如何挑?2025年海外专线IP如何购买?
你花了时间和预算买了IP,结果IP质量不佳,项目效率低下不说,还可能带来莫名的网络问题,是不是太闹心了?尤其是在面对海外专线IP时,到底怎么才能买到适合自己的呢?所以,挑IP绝对是个技…...
WebRTC从入门到实践 - 零基础教程
WebRTC从入门到实践 - 零基础教程 目录 WebRTC简介 基础概念 工作原理 开发环境搭建 基础实践 三个实战案例 常见问题解答 1. WebRTC简介 1.1 什么是WebRTC? WebRTC(Web Real-Time Communication)是一个支持网页浏览器进行实时语音…...
Windows电脑能装鸿蒙吗_Windows电脑体验鸿蒙电脑操作系统教程
鸿蒙电脑版操作系统来了,很多小伙伴想体验鸿蒙电脑版操作系统,可惜,鸿蒙系统并不支持你正在使用的传统的电脑来安装。不过可以通过可以使用华为官方提供的虚拟机,来体验大家心心念念的鸿蒙系统啦!注意:虚拟…...
goreplay
1.github地址 https://github.com/buger/goreplay 2.简单介绍 GoReplay 是一个开源的网络监控工具,可以记录用户的实时流量并将其用于镜像、负载测试、监控和详细分析。 3.出现背景 随着应用程序的增长,测试它所需的工作量也会呈指数级增长。GoRepl…...
