java二维数组实现推箱子小游戏
作者:weixin_44752188 发布时间:2022-08-31 10:18:40
标签: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经典小游戏汇总
来源:https://blog.csdn.net/weixin_44752188/article/details/109631032


猜你喜欢
- 本文以C#和vb.net代码示例展示如何来获取Excel工作表中图片的坐标位置。这里的坐标位置是指图片左上角顶点所在的单元格行和列位置,横坐
- 作者: juky_huang 事件的简单解释: 事件是对象发送的消息,以发信号通知操作的发生。操作可能是由用户交互(例如
- Linux下JDK安装教程,具体内容如下1、下载 JDK Linux 版本(注意看自己安装 Linux 系统的位数)oracle 官网下载地
- 一个应用场景,浏览器上传一个文件,此文件后台调用文件转换,需要耗费相当长的时间,这样,如果是一个线程同步式的做下去,那么用户在浏览器上感觉就
- 在c和c++中,我们知道没办法起一个变量名叫int,因为这是C/C++保留的关键字,起这么一个变量名没办法区分到底是int类型还是int变量
- 基本的 Java 类型(boolean、byte、char、short、int、long、float 和 double)和关键字 void通
- 一、SpringBoot整合FastJson1.1、引入FastJson依赖包maven项目:<dependency> &nbs
- 最近在做项目时需要对异常进行全局统一处理,主要是一些分类入库以及记录日志等,因为项目是基于Springboot的,所以去网络上找了一些博客文
- 1、获取视频缩略图有两个方法(1)通过内容提供器来获取(2)人为创建缩略图(1)缺点就是必须更新媒体库才能看到最新的视频的缩略图[java]
- 1. 安装JDK解释: JDK是Java编写环境--开发环境注: 安装路径不可出现中文及标点符号。比如:D:\Java\jdk81.1 下载
- 一、技术介绍1.chatgpt-java是一个OpenAI的Java版SDK,支持开箱即用。目前以支持官网全部Api。支持最新版本GPT-3
- 1、fragment简介我对fragment的理解是基于activity的,对于大多数的基本开始发时,我们最先遇到的就是用activity来
- 首先来一道思考题:String str1 = "111111";String str2 = "222222&q
- 简介本文用示例介绍SpringBoot如何解决雪花算法主键ID传到前端后精度丢失问题。问题描述Java后端Long类型的范围-2^63~2^
- 本文实例为大家分享了java实现购物车功能的具体代码,供大家参考,具体内容如下1 需要实现1、实现淘淘商城的购物车功能2 购物车功能2.1
- 效果:说明:获取本局域网的MAC地址(非本机的MAC地址)代码:/// <summary>
- 游戏介绍:拼图游戏是一款经典的益智游戏,游戏难度分为 简单、正常、困难 三种难度,分别对应3*3,4*4,5*5布局,游戏开始前图片被随机打
- 本文实例讲述了C# Windows API应用之基于FlashWindowEx实现窗口闪烁的方法。分享给大家供大家参考,具体如下:Windo
- 前言我们在搭建完集群环境后,不得不考虑的一个问题就是用户访问产生的session如何处理。session的处理有很多种方法,详情见转载的上篇
- 这篇文章讨论了Java面向对象概念中一个基本的概念–Field Hiding(隐藏成员变量)在讨论这个问题之前,我们看一段特别特别简单的代码