推箱子概念
/*
* 模拟:一个人物、一个箱子、一个终点
*/
//打印10*10地图
推箱子代码
public static void main(String[] args) {
//创建地图
String[][] dt = new String[10][10];
for (int i = 0; i < dt.length; i++) {
for (int j = 0; j < dt[i].length; j++) {
dt[i][j] = "*";
}
}
//创建人物的随机坐标
Random ran = new Random();
int rI = ran.nextInt(10);
int rJ = ran.nextInt(10);
//把人物放到地图上
dt[rI][rJ] = "☃";
//创建随机箱子的坐标
int xzI = ran.nextInt(10);
int xzJ = ran.nextInt(10);
while(true) {//循环判断箱子坐标和人坐标是否相等
if(rI!=xzI && rJ!=xzJ) {//如果坐标不相等就赋值箱子然后退出循环
dt[xzI][xzJ] = "■";
break;
}
}
//创建终点坐标
int zdI = ran.nextInt(10);
int zdJ = ran.nextInt(10);
while(true) {
//终点坐标不能和人坐标箱子坐标重叠
if(zdI!=rI && zdI!=xzI && zdJ!=rJ && zdJ!=xzJ) {
//循环判断不等于人的坐标和箱子的坐标就赋值终点然后退出
dt[zdI][zdJ] = "◎";
break;
}
}
//打印地图
for (int i = 0; i < dt.length; i++) {
for (int j = 0; j < dt[i].length; j++) {
System.out.print(dt[i][j]+" ");
}
System.out.println();
}
//让人物移动
while(true) {
System.out.println("请移动:");
System.out.println("W:↑\tS:↓\tA:←\tD:→");
//创建一个扫描器
Scanner sc = new Scanner(System.in);
String yd = sc.next();
if(yd.equals("w")){
System.out.println("上");
dt[rI][rJ] = "*";
if(rI>0) {
rI = rI-1;
if(rI==xzI && rJ==xzJ && xzI>=0) {
xzI = xzI-1;
dt[xzI][xzJ] = "■";
}
}
dt[rI][rJ] = "☃";
//打印地图
for (int i = 0; i < dt.length; i++) {
for (int j = 0; j < dt[i].length; j++) {
System.out.print(dt[i][j]+" ");
}
System.out.println();
}
}else if(yd.equals("s")) {
System.out.println("下");
dt[rI][rJ] = "*";
if(rI<9) {
rI = rI+1;
if(rI==xzI && rJ==xzJ && xzI<9) {
xzI = xzI+1;
dt[xzI][xzJ] = "■";
}
}
dt[rI][rJ] = "☃";
//打印地图
for (int i = 0; i < dt.length; i++) {
for (int j = 0; j < dt[i].length; j++) {
System.out.print(dt[i][j]+" ");
}
System.out.println();
}
}else if(yd.equals("a")) {
System.out.println("左");
dt[rI][rJ] = "*";
if(rJ>0) {
rJ = rJ-1;
if(rI==xzI && rJ==xzJ && xzI>=0) {
xzJ = xzJ-1;
dt[xzI][xzJ] = "■";
}
}
dt[rI][rJ] = "☃";
//打印地图
for (int i = 0; i < dt.length; i++) {
for (int j = 0; j < dt[i].length; j++) {
System.out.print(dt[i][j]+" ");
}
System.out.println();
}
}else if(yd.equals("d")) {
System.out.println("右");
dt[rI][rJ] = "*";
if(rJ<9) {
rJ = rJ+1;
if(rI==xzI && rJ==xzJ && xzI<9) {
xzJ = xzJ+1;
dt[xzI][xzJ] = "■";
}
}
dt[rI][rJ] = "☃";
//打印地图
for (int i = 0; i < dt.length; i++) {
for (int j = 0; j < dt[i].length; j++) {
System.out.print(dt[i][j]+" ");
}
System.out.println();
}
}
if(xzI==zdI && xzJ==zdJ) {
System.out.println("恭喜胜利");
break;
}
}
}