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

 更新时间:2020年11月16日 10:57:21   作者:weixin_44752188  
这篇文章主要为大家详细介绍了java二维数组实现推箱子小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了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经典小游戏汇总

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • SpringBoot如何优雅的处理校验参数的方法

    SpringBoot如何优雅的处理校验参数的方法

    这篇文章主要介绍了SpringBoot如何优雅的处理校验参数的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • Java Swing null绝对布局的实现示例

    Java Swing null绝对布局的实现示例

    这篇文章主要介绍了Java Swing null绝对布局的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • Java equals()方法使用详解及总结

    Java equals()方法使用详解及总结

    这篇文章主要介绍了Java equals()方法使用详解及总结的相关资料,需要的朋友可以参考下
    2017-03-03
  • 一文带你全面了解Java Properties类

    一文带你全面了解Java Properties类

    Properties是JDK1.0中引入的java类,目前也在项目中大量使用,主要用来读取外部的配置,那除了这个,你对它其他的一些api也了解吗? 你了解它是怎么实现的吗? 如果不清楚的话,就通过本篇文章带你一探究竟
    2022-09-09
  • jpa异常No entity found for query问题解决

    jpa异常No entity found for query问题解决

    这篇文章主要为大家介绍了jpa异常之No entity found for query的异常问题解决,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2022-03-03
  • 超全MyBatis动态代理详解(绝对干货)

    超全MyBatis动态代理详解(绝对干货)

    这篇文章主要介绍了超全MyBatis动态代理详解(绝对干货),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • pageHelper一对多分页解决方案示例

    pageHelper一对多分页解决方案示例

    这篇文章主要为大家介绍了pageHelper一对多分页解决方案示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • springboot+redis实现微博热搜排行榜的示例代码

    springboot+redis实现微博热搜排行榜的示例代码

    本文主要介绍了springboot+redis实现微博热搜排行榜的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05
  • Java -jar参数详解之掌握Java可执行JAR文件的运行技巧

    Java -jar参数详解之掌握Java可执行JAR文件的运行技巧

    做项目的时候我们肯定接触过很多jar包,下面这篇文章主要给大家介绍了关于Java -jar参数详解之掌握Java可执行JAR文件的运行技巧,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-11-11
  • maven 传递依赖的实现

    maven 传递依赖的实现

    本文主要介绍了Maven中传递依赖的处理方式,如scope=compile影响依赖传递,使用排除不需要的依赖,以及如何通过查看依赖树解决运行时错误,特别是在依赖排除后可能导致的运行时缺少必需包的问题,感兴趣的可以了解一下
    2024-10-10

最新评论