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);
}
Java基础语句推箱子游戏
最新推荐文章于 2021-12-14 19:47:03 发布