黑马程序员技术交流社区
标题:
使用java基础写出<走迷宫>
[打印本页]
作者:
marsfan
时间:
2016-9-23 23:11
标题:
使用java基础写出<走迷宫>
import java.util.Scanner;
public class 走迷宫 {
public static void main(String[] args) {
//创建键盘录入事件;
Scanner in = new Scanner(System.in);
/*
迷宫地图格式;
31********
*11111****
*1***1****
*11111****
***1******
*号代表障碍 1 代表能走的路 3 代表你的游戏人物
*/
// 定义人物的初始位置;
int x = 0;
int y = 0;
//第一步创建迷宫地图;
int[][] map ={
{1,1,0,0,0,0,0,0,0,0},
{0,1,1,1,1,1,0,0,0,0},
{0,1,0,0,0,1,0,0,0,0},
{0,1,1,1,1,1,0,0,0,0},
{0,0,0,1,0,0,0,0,0,0}
};
map[x][y] = 3;//将人物放在地图的第一个位置
//第二步显示迷宫地图;
showMap(map);
//----------------地图绘制完成------------------------
// 实现人物在迷宫中的移动
while(true){
System.out.println("w往上走 s往下走 a往左走 d往右走");
String move = in.nextLine();
if(move.equals("w")&&x>=1&&map[x-1][y]!=0){//往上走 并且 排除越界情况
x--; //人物的坐标发生变化;
map[x+1][y]=1;//将上一步还原;
}else if(move.equals("s")&&x<map.length-1&&map[x+1][y]!=0){//往下走 并且 排除越界情况
x++; //人物的坐标发生变化;
map[x-1][y]=1;//将上一步还原;
}else if(move.equals("a")&&y>=1&&map[x][y-1]!=0){//往左走 并且 排除越界情况
y--; //人物的坐标发生变化;
map[x][y+1]=1;//将上一步还原;
}else if(move.equals("d")&&y<map[x].length-1&&map[x][y+1]!=0){//往右走 并且 排除越界情况
y++; //人物的坐标发生变化;
map[x][y-1]=1;//将上一步还原;
}
map[x][y] = 3;
showMap(map);
}
}
private static void showMap(int[][] map) {
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] == 3){// 打印迷宫的人物
System.out.print("1");
}
}
System.out.println();//换行;
}
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2