繁体   English   中英

在2D阵列中对角移动

[英]Move diagonally in 2d array

我有我的迷宫,可以往东北向西南方向走,但是我应该如何向北或向南移动。 如果可能的话,你们可以使用我的代码给我示例。 感谢它的4x4阵列。

用户界面

    //Begin user dialog
    System.out.println("Welcome");
    input ="";
    while(!input.equals("quit"))
    {
       System.out.println(map.rooms[row][col].name);
       System.out.print(">");
       input = scan.nextLine().toLowerCase();

        switch (input) {
            case "n":
                if(map.rooms[row][col].isValidExit("n"))
                    row--;
                else
                    System.out.println("You cant go that way");
                break;
            case "s":
                 if(map.rooms[row][col].isValidExit("s"))
                    row++;
                else
                    System.out.println("You cant go that way");
                 break;
            case "w":
                if(map.rooms[row][col].isValidExit("w"))
                    col--;
                else
                    System.out.println("You cant go that way");
                break;
            case "e":
                if(map.rooms[row][col].isValidExit("e"))
                    col++;
                else
                    System.out.println("You cant go that way");
                break;

您需要进行字符解析

while(!input.equals("quit"))
{
   System.out.println(map.rooms[row][col].name);
   System.out.print(">");
   input = scan.nextLine().toLowerCase();
   char[] inputArray = input.toCharArray();

   for(char c : inputArray){

    switch (input) {
        case "n":
            if(map.rooms[row][col].isValidExit("n"))
                row--;
            else
                System.out.println("You cant go that way");
            break;
        case "s":
             if(map.rooms[row][col].isValidExit("s"))
                row++;
            else
                System.out.println("You cant go that way");
             break;
        case "w":
            if(map.rooms[row][col].isValidExit("w"))
                col--;
            else
                System.out.println("You cant go that way");
            break;
        case "e":
            if(map.rooms[row][col].isValidExit("e"))
                col++;
            else
                System.out.println("You cant go that way");
            break;

东北示例:

    case "ne":
        if(map.rooms[row][col].isValidExit("ne")) {
            col++;
            row--;
        }
        else {
            System.out.println("You cant go that way");
        }
        break;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM