欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

java基础 二维数组 推箱子小游戏

程序员文章站 2022-05-09 11:09:48
二维数组二维数组:类似于二维表格(有很多层,每一层有多个房间的楼房)数组声明:数据类型[][]数据名 = new 数据类型[行数][列数];获取二维数组的长度:数组名.lengt 得到的是行数数组名[行下标].length 得到的是列数推箱子小游戏import java.util.Random;import java.util.Scanner;/* * 推箱子的小游戏 */public class Test02 {public static void main(Strin...

二维数组

二维数组:类似于二维表格(有很多层,每一层有多个房间的楼房)
数组声明:
数据类型[][]数据名 = 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;
				
				}
			}
	}
}

本文地址:https://blog.csdn.net/weixin_44752188/article/details/109631032

相关标签: java基础 java