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

这篇博客通过实例展示了如何使用Java二维数组创建并实现一个推箱子小游戏。游戏地图由二维数组表示,包含了随机生成的箱子、人物和终点位置。玩家通过输入指令控制人物移动,当人物与箱子同时到达终点时,游戏结束。文章还提供了游戏的操作规则和代码实现详情。
摘要由CSDN通过智能技术生成

本文实例为大家分享了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;

}

}

}

}

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值