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经典小游戏汇总

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

你可能感兴趣的:(java二维数组实现推箱子小游戏)