Java 忽略文件中的数字

Java 忽略文件中的数字,java,arrays,file,io,2d,Java,Arrays,File,Io,2d,我正在制作一个程序,从一个文件中获取数据,并从中制作一个迷宫游戏。示例maze.txt文件如下所示: 5 5 P.XX. ...X. .XT.. ..X.. X.... 其中顶部的两个数字定义了数组的行和列。 这是我正在使用的代码 import java.util.*; import java.io.*; public class MazeGame { public static void main(String[] args) throws Exception {

我正在制作一个程序,从一个文件中获取数据,并从中制作一个迷宫游戏。示例maze.txt文件如下所示:

5  5
P.XX.
...X.
.XT..
..X..
X....
其中顶部的两个数字定义了数组的行和列。 这是我正在使用的代码

import java.util.*;
import java.io.*;

public class MazeGame {

    public static void main(String[] args) throws Exception {

        // Display the maze

        Scanner sc = new Scanner(new File("maze.txt"));
        int rows1 = sc.nextInt();
        int columns1 = sc.nextInt();
        rows1 += 1;
        columns1 += 1;

        BufferedReader in = new BufferedReader(new FileReader("maze.txt"));

        char[][] treasureMaze = new char[rows1][columns1];
        for (int i = 0; i < rows1 || i < columns1; ++i) {
            String line = in.readLine();
            if (line == null) {
                System.out.println("Error in array");
                return;
            }
            sc.nextLine();

            treasureMaze[i] = line.toCharArray();
        }

        display(treasureMaze);
        int vertical = 0;
        int horizontal = 0;

        // Give Move Options
        options();

        // Setup a while loop that continues until
        // the user has gotten to the treasure, or 'P'
        while (treasureMaze[vertical][horizontal] != 'T') {
            // Get Users Decision
            Scanner moveChoice = new Scanner(System.in);
            int choice = moveChoice.nextInt();

            if (choice == 1) {
                System.out.println("You chose to Move up");
            } else if (choice == 2) {
                System.out.println("You chose to Move down");
            } else if (choice == 3) {
                System.out.println("You chose to Move left");
            } else if (choice == 4) {
                System.out.println("you chose to Move right");
            } else {
                return;
            }

            // Move the Player: Each choice will move the player
            // according to their choice and then re-display the
            // map and options so that they can move through the maze

            // Move Up
            if (choice == 1) {
                if (vertical - 1 < 0) {
                    System.out
                            .println("\nCannot move there! Try something else\n");
                    display(treasureMaze);
                    options();
                } else if (treasureMaze[vertical - 1][horizontal] == '.') {
                    treasureMaze[vertical - 1][horizontal] = 'P';
                    treasureMaze[vertical][horizontal] = '.';
                    vertical -= 1;
                    display(treasureMaze);
                    options();
                } else if (treasureMaze[vertical - 1][horizontal] == 'T') {
                    System.out.println("\nCongratulations you won!");
                    treasureMaze[vertical][horizontal] = 'T';
                } else {
                    System.out
                            .println("\nCannot move there! Try something else\n");
                    display(treasureMaze);
                    options();
                }
            }

            // Move Down
            else if (choice == 2) {
                if (vertical + 1 < 0) {
                    System.out
                            .println("\nCannot move there! Try something else\n");
                    display(treasureMaze);
                    options();
                } else if (treasureMaze[vertical + 1][horizontal] == '.') {
                    treasureMaze[vertical + 1][horizontal] = 'P';
                    treasureMaze[vertical][horizontal] = '.';
                    vertical += 1;
                    display(treasureMaze);
                    options();
                } else if (treasureMaze[vertical + 1][horizontal] == 'T') {
                    System.out.println("\nCongratulations you won!");
                    treasureMaze[vertical][horizontal] = 'T';
                } else {
                    System.out
                            .println("\nCannot move there! Try something else\n");
                    display(treasureMaze);
                    options();
                }
            }

            // Move Left
            else if (choice == 3) {
                if (horizontal - 1 < 0) {
                    System.out
                            .println("\nCannot move there! Try something else\n");
                    display(treasureMaze);
                    options();
                } else if (treasureMaze[vertical][horizontal - 1] == '.') {
                    treasureMaze[vertical][horizontal - 1] = 'P';
                    treasureMaze[vertical][horizontal] = '.';
                    horizontal -= 1;
                    display(treasureMaze);
                    options();
                } else if (treasureMaze[vertical][horizontal - 1] == 'T') {
                    System.out.println("\nCongratulations you won!");
                    treasureMaze[vertical][horizontal] = 'T';
                } else {
                    System.out
                            .println("\nCannot move there! Try something else\n");
                    display(treasureMaze);
                    options();
                }
            }

            // Move Right
            else if (choice == 4) {
                if (horizontal + 1 < 0) {
                    System.out
                            .println("\nCannot move there! Try something else\n");
                    display(treasureMaze);
                    options();
                } else if (treasureMaze[vertical][horizontal + 1] == '.') {
                    treasureMaze[vertical][horizontal + 1] = 'P';
                    treasureMaze[vertical][horizontal] = '.';
                    horizontal += 1;
                    display(treasureMaze);
                    options();
                } else if (treasureMaze[vertical][horizontal + 1] == 'T') {
                    System.out.println("\nCongratulations you won!");
                    treasureMaze[vertical][horizontal] = 'T';
                } else {
                    System.out
                            .println("\nCannot move there! Try something else\n");
                    display(treasureMaze);
                    options();
                }
            } else {
                System.out.println("Bye!");
                return;
            }

        }
    }

    // Display Object: prints out the maze for the user
    public static void display(char x[][]) {
        for (int row = 0; row < x.length; row++) {
            for (int column = 0; column < x[row].length; column++) {
                System.out.print(x[row][column] + "\t");
            }
            System.out.println();
        }
    }

    // Options Object: gives the options menu to the user
    static void options() {
        System.out.println("You may:");
        System.out.println("\t1) Move up");
        System.out.println("\t2) Move down");
        System.out.println("\t3) Move left");
        System.out.println("\t4) Move right");
        System.out.println("\t0) Quit");

    }
}
import java.util.*;
导入java.io.*;
公共级马泽加梅{
公共静态void main(字符串[]args)引发异常{
//展示迷宫
Scanner sc=新扫描仪(新文件(“maze.txt”);
int rows1=sc.nextInt();
int columns1=sc.nextInt();
行1+=1;
列1+=1;
BufferedReader in=新的BufferedReader(新文件读取器(“maze.txt”);
char[][]=new char[rows1][columns1];
对于(int i=0;i