package item5;
import java.util.Scanner;
//boolean finish=false;
public class Test5_4 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner(System.in);
char array[][]=new char[8][10];
int i,j;
int x=1;
int y=1;
boolean finish=false;
for( i=0;i<array.length;i++)
{
if(i==0||i==7)
{
for( j=0;j<array[i].length;j++)
{
array[i][j]='H';
}
}
else
{
for(j=1;j<array[i].length-1;j++)
{
array[i][j]=' ';
}
array[i][0]='H';
array[i][9]='H';
}
}
array[1][3]='H';
array[2][3]='H';
array[3][3]='H';
array[2][5]='H';
array[3][5]='H';
array[3][6]='H';
array[3][8]='H';
array[4][8]='H';
array[6][4]='H';
array[5][4]='H';
array[5][5]='H';
array[5][6]='H';
array[x][y]='&';
array[2][2]='o';
array[6][5]='*';
//以上画的地图
// System.out.println("-------------------");
// showArray(array);
// System.out.println("-------------------");
while(true) //开始执行推的动作
{
showArray(array);
if(finish)
{
break;
}
System.out.println("A左移, D右移, W上移, S下移");
String step=sc.nextLine();
switch(step.toLowerCase())
{
case "a":
if(array[x][y-1]==' ') //如果左边不是墙壁的话执行左移操作
{
array[x][y-1]='&';
array[x][y]=' ';
y--;
}
else if(array[x][y-1]=='o') //如果左边是箱子时执行的操作
{
if(array[x][y-2]!='H')
{
if(array[x][y-2]=='*')
{
array[x][y-1]='&';
array[x][y-2]='o';
array[x][y]=' ';
finish=true;
}
else
{
array[x][y-1]='&';
array[x][y-2]='o';
array[x][y]=' ';
y--;
}
}
}
break;
case "w":
if(array[x-1][y]==' ') //如果上边不是墙壁的话执行左移操作
{
array[x-1][y]='&';
array[x][y]=' ';
x--;
}
else if(array[x-1][y]=='o') //如果上边是箱子时执行的操作
{
if(array[x-2][y]!='H')
{
if(array[x-2][y]=='*')
{
array[x-1][y]='&';
array[x-2][y]='o';
array[x][y]=' ';
finish=true;
}
else
{
array[x-1][y]='&';
array[x-2][y]='o';
array[x][y]=' ';
x--;
}
}
}
break;
case "s":
if(array[x+1][y]==' ') //如果下边不是墙壁的话执行左移操作
{
array[x+1][y]='&';
array[x][y]=' ';
x++;
}
else if(array[x+1][y]=='o') //如果下边是箱子时执行的操作
{
if(array[x+2][y]!='H')
{
if(array[x+2][y]=='*')
{
array[x+1][y]='&';
array[x+2][y]='o';
array[x][y]=' ';
finish=true;
}
else
{
array[x+1][y]='&';
array[x+2][y]='o';
array[x][y]=' ';
x++;
}
}
}
break;
case "d":
if(array[x][y+1]==' ') //如果右边不是墙壁的话执行左移操作
{
array[x][y+1]='&';
array[x][y]=' ';
y++;
}
else if(array[x][y+1]=='o') //如果右边是箱子时执行的操作
{
if(array[x][y+2]!='H')
{
if(array[x][y+2]=='*')
{
array[x][y+1]='&';
array[x][y+2]='o';
array[x][y]=' ';
finish=true;
}
else
{
array[x][y+1]='&';
array[x][y+2]='o';
array[x][y]=' ';
y++;
}
}
}
break;
default:
break;
}
}
sc.close();
System.out.println("游戏结束");
}
private static void showArray(char[][] array) { //画地图操作
// TODO Auto-generated method stub
System.out.println("-------------------");
for(char col[]:array)
{
for(char row:col)
{
System.out.print(row+" ");
}
System.out.println();
}
System.out.println("-------------------");
}
}
java写的推箱子小游戏,用于学习用
最新推荐文章于 2023-12-23 08:41:37 发布