你会如何编写代码?

此特定问题是关于一个迷宫游戏,其具有乘员其是探索者(你),怪兽(触摸会杀死你),和珍宝的ArrayList。方形物体的游戏使用的块中,这些住户居住在。我想要做的特别的事情是可以出口的迷宫当前配置或导入TXT文件文件读取。

的规格: 第一读取行和迷宫的COLS创建一个适当大小的方形[] []。然后构造和所有的广场/乘员阅读。

有关平方,迷宫将首先确定该行与“广场”开始。然后,它会在广场的ROW和COL在阅读和使用这些信息来构建一个广场对象。最后,它会扫描仪的其余部分传递给广场的toObject方法,因此可以初始化。

有关的所有其他占用,迷宫将确定一种乘员它是什么以及使用该构造函数只需要迷宫构造适当的对象。它不会读取的行或从扫描仪的关口,而是简单地传递给新创建的对象的方法toObject扫描仪。

这是代码,我迄今为止这可能是错误的:

    public void readMazeFromFile(String fileName) throws IOException, FileNotFoundException, MazeReadException
   {
        Scanner fileSc = new Scanner(new File(fileName));
        String line = fileSc.nextLine(); //whats on the line, will be overwritten
        Scanner lineSc = new Scanner(line);
        String temp;
        lineSc.useDelimiter(",");
        int lineNum = 1; //every time you scan a line out, do lineNum++
        int r1, r2, r3, r4, c1, c2, c3, c4;

        rows = fileSc.nextInt();
        cols = fileSc.nextInt();
        Square hi = new Square(rows, cols);
        line = fileSc.nextLine();
        while ( line != null)
        {
            line = lineSc.nextLine();
            lineSc = new Scanner(line);

            if( lineSc.equals("Square"))
            {
                r1 = lineSc.nextInt();
                c1 = lineSc.nextInt(); 
                hi.toObject(lineSc);
            }
            if (lineSc.equals("Explorer"))
            {

                explorer.toObject(lineSc);
            }
            if (lineSc.equals("Treasure"))
            {
                Treasure.toObject(lineSc);
            }


            lineNum++;
        }

下面是示例输出:

5,5
Square,0,0,true,false,false,true,true,true
Square,0,1,true,false,true,false,true,true
Square,0,2,true,false,true,false,false,false
Square,0,3,true,false,false,false,false,false
Square,0,4,true,true,false,false,false,false
Square,1,0,false,false,true,true,true,true
Square,1,1,true,false,true,false,false,false
Square,1,2,true,true,false,false,false,false
Square,1,3,false,true,false,true,false,false
Square,1,4,false,true,false,true,false,false
Square,2,0,true,false,false,true,false,false
Square,2,1,true,false,true,false,false,false
Square,2,2,false,true,false,false,false,false
Square,2,3,false,true,false,true,false,false
Square,2,4,false,true,false,true,false,false
Square,3,0,false,true,false,true,false,false
Square,3,1,true,false,false,true,false,false
Square,3,2,false,true,false,false,false,false
Square,3,3,false,true,true,true,false,false
Square,3,4,false,true,false,true,false,false
Square,4,0,false,true,true,true,false,false
Square,4,1,false,true,true,true,false,false
Square,4,2,false,false,true,true,false,false
Square,4,3,true,false,true,false,false,false
Square,4,4,false,true,true,false,false,false
Explorer,0,0,Scary Name
Treasure,4,4,true
Treasure,2,2,false
Monster,4,4
Monster,3,3

你会写什么内容?

有帮助吗?

解决方案

这是一个骨架,可以下手。你真的不需要任何超过这里Scanner;它可以做的一切,你需要扫描输入并执行转换等你想用它next()nextInt()nextBoolean()nextLine()方法。

    Scanner in = new Scanner(new File(filename));
    in.useDelimiter("\\s+|,");

    int rows = in.nextInt();
    int cols = in.nextInt();
    // construct the array

    while (in.hasNext()) {
        String type = in.next();
        int r = in.nextInt();
        int c = in.nextInt();
        // read more depending on type
    }
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top