Java基础语句推箱子游戏

tech2024-11-08  18

import java.util.Scanner; public class work6 { public static void main(String[] args) { Scanner input = new Scanner(System.in); // 1.地图 二维数组10X10 // 2.人,箱,终(箱子可以随机出现) // 3.游戏结束(胜利,箱子堆到边缘) // 4.人不能吃终点 // 5.不能超出地图的范围 int[][] map = new int[10][10]; // 人的坐标 int rx = 5; int ry = 4; map[rx][ry] = 1; // 箱子的坐标 int xx = 3; int xy = 2; map[xx][xy] = 2; // 终点的坐标 // 随机产生 int zx = 4; int zy = 1; map[zx][zy] = 3; do { for (int i = 0; i < map.length; i++) { for (int j = 0; j < map[i].length; j++) { if (map[i][j] == 0) { System.out.print("口"); } else if (map[i][j] == 1) { System.out.print("汉"); } else if (map[i][j] == 2) { System.out.print("车"); } else if (map[i][j] == 3) { System.out.print("终"); } } System.out.println(); } if(map[xx][xy]==map[zx][zy]){ System.out.println("恭喜你推车成功!"); break; } if (xx==0||xx==9||xy==0||xy==9) {//如果箱子也触碰边缘游戏失败。 System.out.println("游戏失败"); break; } System.out.println("请输入方向:w上,s下,a左,d右"); String str = input.next(); if (str.equals("w")) { //判断人的上一格是箱子的情况 if(str.equals("w")&&rx==0){ rx++; map[rx][ry]=map[rx+1][ry];//往上走 map[rx][ry]=1; //重新赋值 }else if(str.equals("a")||str.equals("S")||str.equals("d")){ continue; } if(map[rx-1][ry]==2){//推箱子 //箱子上移 xx--; //箱子赋值 map[xx][xy]=2; } map[rx][ry]=0;//将现在人的坐标值赋值为0,清空作为地图 //向上走一格,移动行的位置 rx--; //将新的坐标重新赋值为人的值1 map[rx][ry]=1; } else if (str.equals("s")) { if(str.equals("s")&&rx==9){//如果rx碰到9 rx--; map[rx][ry]=map[rx-1][ry];//往下走 map[rx][ry]=1; //重新赋值 }else if(str.equals("w")||str.equals("a")||str.equals("d")){ continue; } //判断人的下一格是箱子的情况 if(map[rx+1][ry]==2){ //箱子下移 xx++; //箱子赋值 map[xx][xy]=2; } map[rx][ry]=0;//将现在人的坐标值赋值为0,清空作为地图 //向下走一格,移动行的位置 rx++; //将新的坐标重新赋值为人的值1 map[rx][ry]=1; } else if (str.equals("a")) { if(str.equals("a")&&ry==0){//往左走 ry++; map[rx][ry]=map[rx][ry+1];//往左走再赋值 map[rx][ry]=1; //重新赋值 }else if(str.equals("w")||str.equals("S")||str.equals("d")){ continue; } //判断人的左一格是箱子的情况 if(map[rx][ry-1]==2){ //箱子上移 xy--; //箱子赋值 map[xx][xy]=2; } map[rx][ry]=0;//将现在人的坐标值赋值为0,清空作为地图 //向左走一格,移动行的位置 ry--; //将新的坐标重新赋值为人的值1 map[rx][ry]=1; } else if (str.equals("d")) { if(str.equals("d")&&rx==0){//往右走 rx++; map[rx][ry]=map[rx][ry-1];//往上走 map[rx][ry]=1; //重新赋值 }else if(str.equals("a")||str.equals("S")||str.equals("w")){ continue; } //判断人的右一格是箱子的情况 if(map[rx][ry+1]==2){ //箱子上移 xy++; //箱子赋值 map[xx][xy]=2; } map[rx][ry]=0;//将现在人的坐标值赋值为0,清空作为地图 //向右走一格,移动行的位置 ry++; //将新的坐标重新赋值为人的值1 map[rx][ry]=1; } map[zx][zy]=3; } while(true); }
最新回复(0)