java二维数组实现推箱子小游戏

作者:weixin_44752188 时间:2022-08-31 10:18:40 

本文实例为大家分享了java实现推箱子小游戏的具体代码,供大家参考,具体内容如下

二维数组

二维数组:类似于二维表格(有很多层,每一层有多个房间的楼房)

数组声明:
数据类型[][]数据名 = new 数据类型[行数][列数];
获取二维数组的长度:数组名.lengt 得到的是行数
数组名[行下标].length 得到的是列数

推箱子小游戏


import java.util.Random;
import java.util.Scanner;

/*
* 推箱子的小游戏
*/
public class Test02 {

public static void main(String[] args) {
Random r = new Random();
Scanner sc = new Scanner(System.in);
int[][]dt = new int[10][10];
//随机箱子,人和终点位置 0代表没有东西,1代表人 2代表箱子 3代表终点
int xh = r.nextInt(8)+1;//随机箱子坐标
int xl = r.nextInt(8)+1;
dt[xl][xh] = 2;
int rh = 8;//确定人的坐标
int rl = 8;
dt[rh][rl] = 1;
int zh = r.nextInt(10);//随机终点的坐标
int zl = r.nextInt(10);
dt[zh][zl] = 3;
//画地图
while (true) {
for (int i = 0; i < dt.length; i++) {
for (int j = 0; j < dt.length; j++) {
 if (dt[i][j]==1) {
 System.out.print("╋");
 }else if (dt[i][j]==2) {
 System.out.print("■");
 }else if (dt[i][j]==3) {
 System.out.print("▲");
 }else{
 System.out.print("◻");
 }
}

System.out.println();//打印完一行换行
}
//如果箱子坐标和终点坐标重合,提示游戏完成,结束循环
if (xl==zl&&xh==zh) {
 System.out.println("恭喜,过关");
 break;
}
System.out.println("操作规则:a代表左移,s代表下移,d代表右移,w代表上移");
System.out.println("请操作");
String c = sc.next();
switch(c){
case "a":
 if (rl>0) {
 //如果箱子和人在同一行,并且箱子在人的左侧,则可以推动箱子
 if (rh==xh&&rl==xl+1) {
 if (xl>0) {//箱子和人相邻
 xl--;
 dt[xh][xl] = 2;
 dt[rh][rl] = 0;
 rl--;
 dt[rh][rl] = 1;
 }
 }else{//箱子和人不相邻
 dt[rh][rl]=0;
 rl--;
 dt[rh][rl]=1;
 }
 }
 break;
case "d":
 if (rl<9) {
 //如果箱子和人在同一行,并且箱子在人的右侧,则可以推动箱子
 if (rh==xh&&rl==xl-1) {
 if (xl<9) {
 xl++;
 dt[xh][xl] = 2;
 dt[rh][rl] = 0;
 rl++;
 dt[rh][rl] = 1;
 }
 }else{  
 dt[rh][rl]=0;
 rl++;
 dt[rh][rl]=1;
 }
 }
 break;
case "w":
 if (rh>0) {
 //如果箱子和人在同一列,并且箱子在人的上侧,则可以推动箱子
 if (rl==xl&&rh==xh+1) {
 if(xh>0){
 xh--;
 dt[xh][xl] = 2;
 dt[rh][rl] = 0;
 rh--;
 dt[rh][rl] = 1;  
 }
 }else{
 dt[rh][rl]=0;
 rh--;
 dt[rh][rl]=1;
 }
 }
 break;
case "s":
 if (rh<9) {
 //如果箱子和人在同一列,并且箱子在人的下侧,则可以推动箱子
 if (rl==xl&&rh==xh-1) {
 if(xh>0){
 xh++;
 dt[xh][xl] = 2;
 dt[rh][rl] = 0;
 rh++;
 dt[rh][rl] = 1;  
 }
 }else{
 dt[rh][rl]=0;
 rh++;
 dt[rh][rl]=1;
 }

}
 break;
 default:
 System.out.println("你会玩吗?请继续");
 break;

}
}
}
}

更多有趣的经典小游戏实现专题,分享给大家:

C++经典小游戏汇总

python经典小游戏汇总

python俄罗斯方块游戏集合

JavaScript经典游戏 玩不停

java经典小游戏汇总

javascript经典小游戏汇总

来源:https://blog.csdn.net/weixin_44752188/article/details/109631032

标签:java,推箱子
0
投稿

猜你喜欢

  • Java Spring框架简介与Spring IOC详解

    2021-08-06 03:05:56
  • springboot自定义Starter的具体流程

    2022-01-26 05:08:06
  • C#获取字符串后几位数的方法

    2022-06-07 21:39:33
  • 详解Mybatis多参数传递入参四种处理方式

    2022-12-27 15:18:20
  • C#过滤DataTable中空数据和重复数据的示例代码

    2022-03-15 19:33:45
  • SpringBoot如何通过Feign调用传递Header中参数

    2023-11-24 21:39:29
  • C#动态编译并执行字符串样例

    2022-02-10 22:26:53
  • C#实现一键清空控件值的示例代码

    2021-11-12 12:10:15
  • VMware虚拟机下hadoop1.x的安装方法

    2023-07-27 08:01:40
  • android不同activity之间共享数据解决方法

    2023-12-22 04:30:45
  • JavaWeb 使用DBUtils实现增删改查方式

    2023-01-31 04:31:48
  • Mybatis与Ibatis的区别

    2022-11-19 14:27:42
  • 谈谈Hashmap的容量为什么是2的幂次问题

    2022-12-27 18:42:35
  • Android系统view与SurfaceView的基本使用及区别分析

    2023-04-08 00:33:26
  • Java多线程wait()和notify()方法详细图解

    2021-09-19 20:27:32
  • 深入浅析Java中普通代码块、构造代码块与静态代码块

    2023-04-14 15:16:35
  • JAVA回顾:封装,继承,多态

    2021-09-26 20:17:59
  • Maven项目读取resources文件路径问题解决方案

    2023-04-21 15:05:11
  • Java中HashMap与String字符串互转的问题解决

    2023-12-21 11:11:28
  • c#滚动字幕动画窗体制作步骤

    2023-12-06 20:12:58
  • asp之家 软件编程 m.aspxhome.com