java实现二维数组推箱子小游戏
推箱子小游戏
import java.util.Scanner;public class 推箱子 {public static void main(String[] args) {int x =3, y =3;// 定义玩家的坐标boolean finish=false; //定义一个布尔型变量初始值为falseScanner in = new Scanner(System.in);int map[][]={{0,0,1,1,1,0,0,0}, //0表示黑色区域{0,0,1,5,1,0,0,0}, //1表示红墙区域 {0,0,1,3,1,1,1,1}, //2表示白墙区域{1,1,1,4,2,2,8,1}, //3表示箱子{1,5,3,2,2,1,1,1}, //4表示人物表示{1,1,1,1,2,1,0,0}, //5表示目的地{0,0,0,1,8,1,0,0}, //8表示进入了目的地{0,0,0,1,1,1,0,0}};//初始化地图while (true) {System.out.println("--------------------");for (int i=0;i<8;i++) {for (int j=0;j<8; j++) {System.out.print(map[i][j]+ " ");//打印地图}System.out.println();}System.out.println("---------------------");if(map[4][1]==8&&map[1][3]==8){finish = true;System.out.println("恭喜您通关!");break;}System.out.println("A左移,D右移,W上移,S下移,请输入你的指令:");char choice=in.next().charAt(0);switch (choice) {case 'A':case 'a':if(map[x][y-1]==2){ //如果人物左边是白墙map[x][y]=2; map[x][y-1]=4; //人物往左移动y--;// 玩家坐标左移}else if(map[x][y-1]==3){ //如果人物左边是箱子if(map[x][y-2]!=1){ //如果箱子左边不是红墙if(map[x][y-2]==5){ //如果人物箱子左边是目的地map[x][y]=2;map[x][y-1]=4;map[x][y-2]=8; //箱子到达目的地 y--; //y进行自减操作,更新起始点}if(map[x][y-2]==2){ //如果箱子左边是白墙map[x][y]=2;map[x][y-1]=4;map[x][y-2]=3;y--;}}}break; case 'D':case 'd':if (map[x][y+1]==2) { //如果人物右边是白墙map[x][y]=2;map[x][y+1]=4; //人物往右移动y++;// 玩家坐标右移} else if(map[x][y+1]==3) { //如果人物右边是箱子if (map[x][y+2]!=1) { //如果箱子的右面不是红墙if (map[x][y+2]==5) { //如果箱子的右面是目的地map[x][y]=2;map[x][y+1]=4;map[x][y+2]=8; //箱子到达目的地y++;}if(map[x][y+2]==2){ //如果箱子右边是白墙map[x][y]=2;map[x][y+1]=4;map[x][y+2]=3;y++;}}}break;case 'W' :case 'w':if (map[x-1][y]==2) { //如果人物上边是白墙map[x][y]=2;map[x-1][y]=4;x--;} else if (map[x-1][y]==3) {if (map[x-2][y]!= 1) {if (map[x-2][y]==5) {map[x][y]=2;map[x-1][y]=4;map[x-2][y]=8;x--;}if(map[x-2][y]==2){ //如果箱子上边是白墙map[x][y]=2;map[x-1][y]=4;map[x-2][y]=3;x--;}}}break;case 'S':case 's':if (map[x+1][y]==2) {map[x][y] =2;map[x+1][y]=4;x++;} else if (map[x+1][y]==3) {if (map[x+2][y]!=1) {if (map[x+2][y]==5) {map[x][y]=2;map[x+1][y]=4;map[x+2][y]=8;x++;}if (map[x+2][y]==2) { //如果箱子右边是白墙map[x][y]=2;map[x+1][y]=4;map[x+2][y]=3;x++;}}}break;default:System.out.println("您输入的指令有误,请重新输入!");}}}
}
java实现二维数组推箱子小游戏相关推荐
- 小白的编程经验(二维数组推箱子游戏)
推箱子游戏和迷宫游戏有异曲同工之妙,不过在游戏玩法实现上略有不同,需要考虑的情况更多更复杂. 项目代码放在了码云(gitee)上,有兴趣的可以下载看看. https://gitee.com/YHF_2 ...
- java命令行简单实现推箱子小游戏
import java.util.Random; import java.util.Scanner; public class Push {char[][] map;int peoI,peoJ,box ...
- 【Java】推箱子小游戏(带背景音乐)完整代码
Java实现推箱子小游戏 一.整体框架 二.游戏效果图 三.推箱子四大类 1. GameFrame类 2. Map类 3. MapFactory类 4. Sound类 四.游戏分析 1.游戏操作 2. ...
- android开发--推箱子小游戏(二)
一.前言 迎来第二章的更新啦:使用ListView实现关卡的选择. 本章的内容有点小复杂,毕竟涉及使用了安卓开发中最难用也是最常用的控件之一:ListView 本章可以说是复杂但是单一吧.主要是想大家 ...
- java二维数组杨辉三角_实验----Java的二维数组的应用及杨辉三角的编写
(1) 编写一个程序,生成一个10*10的二维随机整数数组,并将该数组的每行最大值保存于一个一维数组中,将每列平均值保存于另外一个一维数组中并分别输出. (2) 编程输出杨辉三角的前10行. 找出一个 ...
- java语言二维数组转置_java实现二维数组转置的方法示例
本文实例讲述了java实现二维数组转置的方法.分享给大家供大家参考,具体如下: 这里在文件中创建Test2.Exchange.Out三个类 在Exchange类中编写exchange()方法,在方法中 ...
- java txt 二维数组_java 将一个二维数组存到txt文件里,然后再读取
java 将一个二维数组存到txt文件里,然后再读取 mip版 关注:286 答案:3 悬赏:30 解决时间 2021-01-26 21:40 已解决 2021-01-26 04:05 将一个d ...
- 基于Java Swing JFream 组件的趣味推箱子小游戏
一 需求分析 设计一个经典的推箱子小游戏,在窗体里有墙,箱子,胜利的标志,和工人,用户可以通过键盘上的"上"."下"."左"."右 ...
- [源码和文档分享]基于Java Swing JFream 组件的趣味推箱子小游戏
一 需求分析 设计一个经典的推箱子小游戏,在窗体里有墙,箱子,胜利的标志,和工人,用户可以通过键盘上的"上"."下"."左"."右 ...
最新文章
- ActiveMQ5.14.5配置参数详解
- 切题 (problem)(线段树+最大流最小割)
- 【Python】Python迭代求解开平方算法
- 国家粮食与物资储备局揭示中国稻谷产毒真菌分布及仓储动态变化
- 介绍一种新的激活函数族ACON
- 大学计算机之软件设计程序框图,《程序框图、顺序结构》教学设计
- Android6.0 Qualcomm Atheros QCA6174A WiFi Model Support
- 开发一个简单的Mac应用
- 进程间的通信方式——pipe(管道)
- 网络数据采集分析工具tcpdump定义抓包过滤器
- U-Boot启动过程完全分析(转)
- c# 容联云_Rest Server Demo_开发文档_容联云通讯
- 楼市回暖有赖于经济复苏
- 银行信用卡办卡申请进度查询API接口地址
- 向量中断、中断向量、向量地址3个概念是什么关系?
- 基于Html+Css+javascript的动漫网站
- el upload ajax,Upload 上传 el-upload 上传配置请求头为Content-Type: multipart/form-data
- hfss和python_利用Python与HFSS联合仿真设计一个微带天线!
- 2.5 TCP网络协议
- 电力系统继电保护基础知识
热门文章
- 蓝桥杯2016年真题 | Java组
- 基于协同过滤算法的书籍推荐 毕业设计-附源码101555
- python各种模块,迭代器,生成器
- VMware vSphere vCenter 安装部署(VCSA 6.7)
- php fpm的日志,开启php fpm错误日志的方法
- 18个我最推荐的Node.js Web框架和工具
- java 两日期的周数_利用 Java 中 Calendar 计算两个日期之间的天数和周数
- CUDA 分块矩阵乘法
- 令人感动、深思、惋惜的爱情故事, 一个代表传统中国男人的真情悲苦告白
- Regular operators