用java语言写推箱子游戏
时间: 2023-07-20 20:22:34 浏览: 91
用java编写的推箱子游戏
4星 · 用户满意度95%
好的,以下是一个简单的Java语言推箱子游戏的示例代码,您可以参考一下:
```
import java.util.Scanner;
public class PushBoxGame {
static int n, m; // 地图的行数和列数
static char[][] map; // 存储地图的二维字符数组
static int bx, by; // 箱子的当前位置
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 读入地图的行数和列数
n = sc.nextInt();
m = sc.nextInt();
// 读入地图并初始化
map = new char[n][m];
for (int i = 0; i < n; i++) {
String line = sc.next();
for (int j = 0; j < m; j++) {
map[i][j] = line.charAt(j);
if (map[i][j] == 'B') { // 记录箱子的位置
bx = i;
by = j;
}
}
}
// 开始游戏
while (true) {
// 输出当前地图
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
System.out.print(map[i][j]);
}
System.out.println();
}
// 读入玩家输入的移动方向
String dir = sc.next();
// 根据移动方向更新箱子和玩家的位置
int dx = 0, dy = 0; // 玩家的移动距离
if (dir.equals("up")) {
dx = -1;
} else if (dir.equals("down")) {
dx = 1;
} else if (dir.equals("left")) {
dy = -1;
} else if (dir.equals("right")) {
dy = 1;
}
int nx = bx + dx, ny = by + dy; // 箱子的移动目标位置
if (map[nx][ny] == '.') { // 箱子可以移动到目标位置
map[bx][by] = '.';
bx = nx;
by = ny;
map[bx][by] = 'B';
} else if (map[nx][ny] == 'G') { // 箱子推到目标位置
map[bx][by] = '.';
bx = nx;
by = ny;
map[bx][by] = 'X';
System.out.println("You win!");
break;
}
// 判断玩家是否被箱子挤压
if (map[bx + dx][by + dy] == 'X') {
System.out.println("You lose!");
break;
}
}
sc.close();
}
}
```
在上述代码中,我们使用一个二维字符数组`map`来存储地图信息,其中`.`表示空地,`#`表示墙壁,`B`表示箱子,`G`表示箱子需要推到的目标位置,`X`表示箱子已经推到了目标位置。在游戏过程中,我们根据玩家输入的移动方向更新箱子和玩家的位置,并判断游戏是否结束。
阅读全文