このコードをどのように記述しますか?
この特定の質問は、Explorer (あなた)、Monsters (触れると死ぬ)、Treasures である占有者の配列リストを持つ迷路ゲームに関するものです。ゲームは、これらの居住者が存在する正方形のオブジェクトのブロックを使用します。特にやりたいことは、迷路の現在の構成をエクスポートしたり、txt ファイルとしてインポートしたりできるファイルの読み取りです。
仕様: 最初に Maze の行と列を読み取り、適切なサイズの Square[][] を作成します。次に、すべての正方形/占有者を構築して読み取ります。
Squares の場合、Maze は最初に線が「Square」で始まることを判別します。次に、Square の行と列を読み取り、その情報を使用して Square オブジェクトを構築します。最後に、スキャナーの残りの部分を Square の toObject メソッドに渡し、自身を初期化できるようにします。
他のすべての占有者の場合、Maze は占有者の種類を判断し、Maze のみを取るコンストラクタを使用して適切なオブジェクトを構築します。Scanner から行または列を読み取るのではなく、新しく作成されたオブジェクトの toObject メソッドに Scanner を渡すだけです。
これは私がこれまでに持っているコードで、間違っている可能性があります:
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
このセクションには何を書きますか?