Java迷宫小程序

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)三个跳出的应用区别

以上是自己的学习笔记,如果有什么错误的话,请不要吝啬你的看法,在评论区发表你的意见,让我们一起加油( •̀ ω •́ )✧

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值