推箱子小游戏

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实现二维数组推箱子小游戏相关推荐

  1. 小白的编程经验(二维数组推箱子游戏)

    推箱子游戏和迷宫游戏有异曲同工之妙,不过在游戏玩法实现上略有不同,需要考虑的情况更多更复杂. 项目代码放在了码云(gitee)上,有兴趣的可以下载看看. https://gitee.com/YHF_2 ...

  2. java命令行简单实现推箱子小游戏

    import java.util.Random; import java.util.Scanner; public class Push {char[][] map;int peoI,peoJ,box ...

  3. 【Java】推箱子小游戏(带背景音乐)完整代码

    Java实现推箱子小游戏 一.整体框架 二.游戏效果图 三.推箱子四大类 1. GameFrame类 2. Map类 3. MapFactory类 4. Sound类 四.游戏分析 1.游戏操作 2. ...

  4. android开发--推箱子小游戏(二)

    一.前言 迎来第二章的更新啦:使用ListView实现关卡的选择. 本章的内容有点小复杂,毕竟涉及使用了安卓开发中最难用也是最常用的控件之一:ListView 本章可以说是复杂但是单一吧.主要是想大家 ...

  5. java二维数组杨辉三角_实验----Java的二维数组的应用及杨辉三角的编写

    (1) 编写一个程序,生成一个10*10的二维随机整数数组,并将该数组的每行最大值保存于一个一维数组中,将每列平均值保存于另外一个一维数组中并分别输出. (2) 编程输出杨辉三角的前10行. 找出一个 ...

  6. java语言二维数组转置_java实现二维数组转置的方法示例

    本文实例讲述了java实现二维数组转置的方法.分享给大家供大家参考,具体如下: 这里在文件中创建Test2.Exchange.Out三个类 在Exchange类中编写exchange()方法,在方法中 ...

  7. java txt 二维数组_java 将一个二维数组存到txt文件里,然后再读取

    java 将一个二维数组存到txt文件里,然后再读取 mip版  关注:286  答案:3  悬赏:30 解决时间 2021-01-26 21:40 已解决 2021-01-26 04:05 将一个d ...

  8. 基于Java Swing JFream 组件的趣味推箱子小游戏

    一 需求分析 设计一个经典的推箱子小游戏,在窗体里有墙,箱子,胜利的标志,和工人,用户可以通过键盘上的"上"."下"."左"."右 ...

  9. [源码和文档分享]基于Java Swing JFream 组件的趣味推箱子小游戏

    一 需求分析 设计一个经典的推箱子小游戏,在窗体里有墙,箱子,胜利的标志,和工人,用户可以通过键盘上的"上"."下"."左"."右 ...

最新文章

  1. ActiveMQ5.14.5配置参数详解
  2. 切题 (problem)(线段树+最大流最小割)
  3. 【Python】Python迭代求解开平方算法
  4. 国家粮食与物资储备局揭示中国稻谷产毒真菌分布及仓储动态变化
  5. 介绍一种新的激活函数族ACON
  6. 大学计算机之软件设计程序框图,《程序框图、顺序结构》教学设计
  7. Android6.0 Qualcomm Atheros QCA6174A WiFi Model Support
  8. 开发一个简单的Mac应用
  9. 进程间的通信方式——pipe(管道)
  10. 网络数据采集分析工具tcpdump定义抓包过滤器
  11. U-Boot启动过程完全分析(转)
  12. c# 容联云_Rest Server Demo_开发文档_容联云通讯
  13. 楼市回暖有赖于经济复苏
  14. 银行信用卡办卡申请进度查询API接口地址
  15. 向量中断、中断向量、向量地址3个概念是什么关系?
  16. 基于Html+Css+javascript的动漫网站
  17. el upload ajax,Upload 上传 el-upload 上传配置请求头为Content-Type: multipart/form-data
  18. hfss和python_利用Python与HFSS联合仿真设计一个微带天线!
  19. 2.5 TCP网络协议
  20. 电力系统继电保护基础知识

热门文章

  1. 蓝桥杯2016年真题 | Java组
  2. 基于协同过滤算法的书籍推荐 毕业设计-附源码101555
  3. python各种模块,迭代器,生成器
  4. VMware vSphere vCenter 安装部署(VCSA 6.7)
  5. php fpm的日志,开启php fpm错误日志的方法
  6. 18个我最推荐的Node.js Web框架和工具
  7. java 两日期的周数_利用 Java 中 Calendar 计算两个日期之间的天数和周数
  8. CUDA 分块矩阵乘法
  9. 令人感动、深思、惋惜的爱情故事, 一个代表传统中国男人的真情悲苦告白
  10. Regular operators