java二維數(shù)組實現(xiàn)推箱子小游戲
本文實例為大家分享了java實現(xiàn)推箱子小游戲的具體代碼,供大家參考,具體內(nèi)容如下
二維數(shù)組
二維數(shù)組:類似于二維表格(有很多層,每一層有多個房間的樓房)
數(shù)組聲明:
數(shù)據(jù)類型[][]數(shù)據(jù)名 = new 數(shù)據(jù)類型[行數(shù)][列數(shù)];
獲取二維數(shù)組的長度:數(shù)組名.lengt 得到的是行數(shù)
數(shù)組名[行下標].length 得到的是列數(shù)
推箱子小游戲
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();//打印完一行換行
}
//如果箱子坐標和終點坐標重合,提示游戲完成,結(jié)束循環(huán)
if (xl==zl&&xh==zh) {
System.out.println("恭喜,過關(guān)");
break;
}
System.out.println("操作規(guī)則:a代表左移,s代表下移,d代表右移,w代表上移");
System.out.println("請操作");
String c = sc.next();
switch(c){
case "a":
if (rl>0) {
//如果箱子和人在同一行,并且箱子在人的左側(cè),則可以推動箱子
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) {
//如果箱子和人在同一行,并且箱子在人的右側(cè),則可以推動箱子
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) {
//如果箱子和人在同一列,并且箱子在人的上側(cè),則可以推動箱子
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) {
//如果箱子和人在同一列,并且箱子在人的下側(cè),則可以推動箱子
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("你會玩嗎?請繼續(xù)");
break;
}
}
}
}
更多有趣的經(jīng)典小游戲?qū)崿F(xiàn)專題,分享給大家:
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot如何優(yōu)雅的處理校驗參數(shù)的方法
這篇文章主要介紹了SpringBoot如何優(yōu)雅的處理校驗參數(shù)的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-12-12
Java Swing null絕對布局的實現(xiàn)示例
這篇文章主要介紹了Java Swing null絕對布局的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-12-12
jpa異常No entity found for query問題解決
這篇文章主要為大家介紹了jpa異常之No entity found for query的異常問題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步2022-03-03
springboot+redis實現(xiàn)微博熱搜排行榜的示例代碼
本文主要介紹了springboot+redis實現(xiàn)微博熱搜排行榜的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-05-05
Java?-jar參數(shù)詳解之掌握Java可執(zhí)行JAR文件的運行技巧
做項目的時候我們肯定接觸過很多jar包,下面這篇文章主要給大家介紹了關(guān)于Java?-jar參數(shù)詳解之掌握Java可執(zhí)行JAR文件的運行技巧,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2023-11-11

