Java迷宫小程序
import java.util.Scanner;
// 走迷宫小程序
public class Mazes {
public static void main(String[] args) {
movePointer();
}
private static void movePointer() {
Scanner in = new Scanner(System.in);
int row = 1; //行 初始化横坐标
int col = 1; //列 初始化纵坐标
char[][] map ={ //创建一个迷宫地图,0为控制坐标
{'#','#','#','#','#','#','#','#'},
{'#','0','#',' ',' ',' ',' ','#'},
{'#',' ','#','#',' ','#',' ','#'},
{'#',' ',' ','#',' ','#',' ','#'},
{'#','#',' ',' ',' ','#',' ','#'},
{'#','#','#','#','#','#',' ','#'},
{'#',' ',' ',' ',' ',' ',' ','#'},
{'#',' ','#','#','#','#','#','#'},
{'#',' ',' ',' ',' ',' ',' ',' '},
{'#','#','#','#','#','#','#','#'}};
// # 为墙壁,无法穿透
while(true) {//此处为死循环,用于多次键盘输入控制
//遍历迷宫地图
for (int i = 0; i < map.length; i++) {
for (int j = 0; j < map[i].length; j++) {
System.out.print(map[i][j]);
}
System.out.println();
}
System.out.println("请输入你的行走方向,w向上,s向下,a向左,d向右,q退出游戏");
//输入行走的方向
String mark = in.nextLine();
switch (mark) {
//向左走
case "a":
case "A":
// System.out.println(map[col][row - 1] == ' '); //此处为调试代码
if (map[col][row - 1] == ' ') {//判断所要走的地方是不是正确的路
char temp = map[col][row - 1];//第三方变量
map[col][row - 1] = map[col][row];//交换值
map[col][row] = ' ';
row -= 1;//坐标往走的方向移动
}
break;
//向右走
case "d":
case "D":
if (row == 7 && col == 8) {
System.out.println("恭喜过关~");
System.exit(0);// 此处为硬核退出
}
// System.out.println(map[col][row + 1] == ' '); //此处为调试代码
if (map[col][row + 1] == ' ') { //此处操作同上,四个方向都是一样的
char temp = map[col][row + 1];
map[col][row + 1] = map[col][row];
map[col][row] = ' ';
row += 1;
}
break;
//向上走
case "w":
case "W":
// System.out.println(map[col - 1][row] == ' '); //此处为调试代码
if (map[col - 1][row] == ' ') {
char temp = map[col - 1][row];
map[col - 1][row] = map[col][row];
map[col][row] = ' ';
col -= 1;
}
break;
//向下走
case "s":
case "S":
// System.out.println(map[col + 1][row] == ' '); //此处为调试代码
if (map[col + 1][row] == ' ') {
char temp = map[col + 1][row];
map[col + 1][row] = map[col][row];
map[col][row] = temp;
col += 1;
}
break;
//退出游戏
case "q":
case "Q":
System.out.println("欢迎下次来玩");
return; //此处还可以用 break loop、return、System.exit(0);
//输入错误后重新输入
default:
System.out.println("输入有误,请重新输入");
break;
}
}
}
}
总结:这个小程序呐主要运用了Scanner类的调用方法,函数的调用,二维数组,二维数组的遍历,while真循环的应用场景,switch开关语句的应用场景,两数交换,return、break、System.exit(0)三个跳出的应用区别
以上是自己的学习笔记,如果有什么错误的话,请不要吝啬你的看法,在评论区发表你的意见,让我们一起加油( •̀ ω •́ )✧