你会怎么写这段代码?
这个特殊的问题是关于一个迷宫游戏,它有一个包含探险者(你)、怪物(触摸会杀死你)和宝藏的居住者的数组列表。游戏使用这些居住者所在的方形物体块。我想做的特别的事情是文件读取,它可以导出迷宫的当前配置或将它们作为 txt 文件导入。
规格:首先读取迷宫的行和列以创建适当大小的 Square[][]。然后构建并读取所有的 Squares/Occupants。
对于 Squares,Maze 将首先确定该行以“Square”开头。然后它将读取 Square 的 row 和 col 并使用该信息来构造 Square 对象。最后,它将扫描仪的其余部分传递给 Square 的 toObject 方法,以便它可以初始化自己。
对于所有其他 Occupant,Maze 将确定它是哪种 Occupant,并使用仅采用 Maze 的构造函数构造适当的对象。它不会从 Scanner 读取行或 col,而只是将 Scanner 传递给新创建对象的 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
你会为这个部分写什么?