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;
}
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/340546.html
標籤:其他
上一篇:HaaS云端一體智能語音互動方案
