提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
Java学习记录
提示:以下是本篇文章正文内容,下面案例可供参考
一、java二维数组
通过对Java二维数组的创建、修改和打印实现推箱子游戏。
二、实现方法
1.引入库
代码如下:
import java.util.Scanner
2.创建8*8二维数组地图
代码如下:
String [] [] maparr =new String [8][8];
maparr[0]=new String [] {"■","■","■","■","■","■","■","■"};
maparr[1]=new String [] {"■","*"," "," "," "," "," ","■"};
maparr[2]=new String [] {"■"," "," "," "," "," "," ","■"};
maparr[3]=new String [] {"■"," ","▲"," "," "," "," ","■"};
maparr[4]=new String [] {"■"," "," "," ","★"," "," ","■"};
maparr[5]=new String [] {"■"," "," "," "," "," "," ","■"};
maparr[6]=new String [] {"■"," "," "," "," "," "," ","■"};
maparr[7]=new String [] {"■","■","■","■","■","■","■","■"};
print(maparr);
3.确定初始位置,上下左右移动
//人的初始位置
int manx=1;
int many=1;
//箱子的初始位置
int boxx=2;
int boxy=3;
while(many>0&many<7&manx>0&manx<9)
{
Scanner sc = new Scanner(System.in);
String move=sc.next();
//向左移动
if(move.equals("a"))
{
if(maparr[many][manx-1]==" ")
{
maparr[many][manx]=" ";
manx=manx-1;
maparr[many][manx]="*";
print(maparr);
}
else if(maparr[many][manx-1]=="▲")
{
if(maparr[boxy][boxx-1]=="■")
{
print(maparr);
}
else if (maparr[boxy][boxx-1]=="★")
{
System.out.println("you win!!!");
break;
}
else
{
maparr[many][manx]=" ";
many=many-1;
maparr[boxy][boxx]="*";
maparr[boxy][boxx-1]="▲";
boxx=boxx-1;
print(maparr);
}
}
else
print(maparr);
}
//向下移动
else if(move.equals("s"))
{
if(maparr[many+1][manx]==" ")
{
maparr[many][manx]=" ";
many=many+1;
maparr[many][manx]="*";
print(maparr);
}
else if (maparr[many+1][manx]=="▲")
{
if(many+2==7)
{
print(maparr);
}
else if(maparr[boxy+1][boxx]=="★")
{
System.out.println("you win!!!");
break;
}
else{
maparr[many][manx]=" ";
many=many+1;
maparr[many][manx]="*";
maparr[boxy+1][boxx]="▲";
boxy=boxy+1;
print(maparr);
}
}
else
print(maparr);
}
//向右移动
else if(move.equals("d"))
{
if(maparr[many][manx+1]==" ")
{
maparr[many][manx]=" ";
manx=manx+1;
maparr[many][manx]="*";
print(maparr);
}
else if (maparr[many][manx+1]=="▲")
{
if(maparr[boxy][boxx+1]=="■")
{
print(maparr);
}
else if (maparr[many][manx+2]=="★")
{
System.out.println("you win!!!");
break;
}
else
{
maparr[many][manx]=" ";
manx=manx+1;
maparr[many][manx]="*";
boxx=boxx+1;
maparr[boxy][boxx]="▲";
print(maparr);
}
}
else
print(maparr);
}
//向上移动
else if(move.equals("w"))
{
if(maparr[many-1][manx]==" ")
{
maparr[many][manx]=" ";
many=many-1;
maparr[many][manx]="*";
print(maparr);
}
else if (maparr[many-1][manx]=="▲")
{
if(boxy-1==0)
{
print(maparr);
}
else if(maparr[boxy-1][boxx]=="★")
{
System.out.println("you win!!!");
break;
}
else
{
maparr[many][manx]=" ";
many=many-1;
maparr[many][manx]="*";
maparr[boxy-1][boxx]="▲";
boxy=boxy-1;
print(maparr);
}
}
else
print(maparr);
}
}
}
通过终端输入ASWD字符判断移动方向,通过对二维数组元素位置的修改、值的替换,实现移动
总结
提示:字符串二维数组创建方法:String [] [] **=new String [length][length];输入字符串的判断:.equals(objects)。