import java.util.Scanner; //推箱子小游戏试写 public class games { public static void main(String[] args) { Scanner scan = new Scanner(System.in); char[][] map = new char[8][10];//地图大小 int x = 1; int y = 1;///玩家坐标 int l = 2; int k = 2;//箱子坐标 boolean isFlag = true; for (int i = 0; i < map.length; i++) { map[i][0] = 'H'; map[i][9] = 'H'; map[0][i] = 'H'; map[7][i] = 'H'; map[0][8] = 'H'; map[7][8] = 'H'; } map[1][3] = 'H';// 地图内墙壁 map[2][3] = 'H'; map[3][3] = 'H'; map[2][5] = 'H'; map[3][5] = 'H'; map[3][6] = 'H'; map[3][8] = 'H'; map[4][8] = 'H'; map[6][4] = 'H'; map[5][4] = 'H'; map[5][5] = 'H'; map[5][6] = 'H'; map[x][y] = '&';// 玩家角色 map[l][k] = 'o';// 箱子 map[6][5] = '*';// 目的地 while (isFlag) {//循环打印游戏 for (int i = 0; i < map.length; i++) { for (int j = 0; j < map[0].length; j++) { System.out.print(" " + map[i][j]); } System.out.println(); } System.out.println("(W向上 A向左 S向下 D向右)请输入指令:"); String order = scan.nextLine();//玩家输入指令 switch (order.toLowerCase()) { case "a": if (map[x][y - 1] == 'H') {//往左走情况一有墙壁 map[x][y] = map[x][y]; } else if(map[x][y - 1] != 'H' && map[x][y - 1] != 'o') {//往左走情况二 map[x][y - 1] = '&'; map[x][y] = 0; y--; } if (map[x][y - 1] == 'o'&&map[x][y-2]!='H') {//往左走碰到箱子情况三 map[x][y] = 0;//原位置为空 map[x][y - 1] = '&';//下一个位置赋给 map[l][k - 1] = 'o'; map[l][k] = 0; k--;//箱子左移 y--;//玩家左移 } if(map[l][k]==map[6][5]){ isFlag=false; System.out.println("游戏结束"); } break; case "w": if (map[x - 1][y] == 'H') {//往上走情况一 map[x][y] = map[x][y]; } if (map[x - 1][y] != 'H' && map[x - 1][y] != 'o') {//往上走情况二 map[x - 1][y] = '&'; map[x][y] = 0; x--; } if (map[x - 1][y] == 'o'&&map[x - 2][y] != 'H') {//往上走情况三 map[l - 1][k] = 'o'; map[l][k] = 0;//空 map[x - 1][y] = '&'; map[x][y] = 0; l--;//箱子上移 x--;//玩家上移 } if(map[l][k]==map[6][5]){ isFlag=false; System.out.println("游戏结束"); } break; case "s": if (map[x + 1][y] == 'H') {//向下移动情况一 map[x][y] = map[x][y]; } else if (map[x + 1][y] != 'H' && map[x + 1][y] != 'o') {//向下移动情况二 map[x + 1][y] = '&'; map[x][y] = 0; x++; } else if (map[x + 1][y] == 'o'&&map[x + 2][y] != 'H') {//向下移动情况三碰到箱子 //箱子下一个位置不是墙壁 map[l + 1][k] = 'o';//空 map[l][k] = 0; map[x + 1][y] = '&'; map[x][y] = 0; l++; //箱子移动 x++;//玩家移动 } if(map[l][k]==map[6][5]){ isFlag=false; System.out.println("游戏结束"); } break; case "d"://向右 if (map[x][y + 1] == 'H') {//情况一有墙 map[x][y] = map[x][y]; } else if (map[x][y + 1] != 'H' && map[x][y + 1] != 'o') {//情况二无墙也不是箱子 map[x][y] = 0; map[x][y + 1] = '&'; y++; } else if (map[x][y + 1] == 'o'&&map[x][y + 2] != 'H') {//情况三碰见箱子//无墙壁 map[l][k + 1] = 'o'; map[l][k] = 0; map[x][y + 1] = '&'; map[x][y]=0; k++; y++; } if(map[l][k]==map[6][5]){ isFlag=false; System.out.println("游戏结束"); } break; } } } }
推箱子小游戏试写
最新推荐文章于 2024-09-18 03:55:04 发布