2D配列の[0][0]の位置にある文字列値で、迷路の始まりをマークする必要があります。問題は、新しい行を読み取るたびに、位置[i] [0]の値が変更される可能性があり、常に位置[0][0]の最初の値である必要があることです。スペースや区切り文字がないので、各行の各行の各文字値を読み取っています。
maze [0] [0]の文字列が1に設定したい文字列であることがわかるだけで、どうやって取得するのかわかりません。
迷路は、最初の行が2つの整数を持つように配置されています。1番目のint=迷路の行数、2番目のint=迷路の列数。開始は常に[0][0]で、終了は常に[row-1][col-1]です。残りの行は迷路です。したがって、テキストファイルの2行目=迷路の0行目です。
そこで、ファイルを文字列値として読み取り、1行目の文字列値をintに解析し、それらの値を使用して整数の2D配列を定義しました。
次に、残りの行を読み、パスを構成する値(存在する場合)と常に等しい最初のchar値と比較しました。読み取られたシンボルがパスに対して=の場合、1として格納され、それ以外の場合は0として格納されます。次に、2D配列を調べ、さまざまな座標の比較を開始してパスを決定し、その情報をに格納します。キュー、次にスタック。
私が抱えている問題は、最初の3行では機能しますが、残りの行では値1と0が反転することです。コードのスニピット、それが読み取っている.txtファイルを添付しました。これは、各行の最初の要素と比較しているためであり、最初の3行は「。」であることがわかります。次に、残りの行に「+」を付けます。
import java.io.*;
import java.util.*;
public class MazeArray {
String info;
String[] rowCol;
//private char [][] maze;
private int [][] maze;
private Scanner readFile;
private int path, cur, row, col;
public MazeArray()
{
maze = new int[0][0];
}
public int[][] readFile(String fileName) throws IOException
{
readFile = new Scanner(new File(fileName));
info = readFile.nextLine();
rowCol = info.split(" ",2);
row = Integer.parseInt(rowCol[0]);
col = Integer.parseInt(rowCol[1]);
maze = new int[row][col];
System.out.println("# of rows: " + row + " # of col: " + col);
while (readFile.hasNextLine())
{
//System.out.println(readFile.next());
for (int i=0; i<row; i++)
{
String symbol = readFile.nextLine();
for (int j=0; j<col; j++)
{
path = symbol.charAt(0);
//safe = symbol.charAt(maze[0][0]);
maze[i][j] = symbol.charAt(j);
if (maze[i][j] == path)
{
maze[i][j] = 1;
}
else
{
maze[i][j] = 0;
}
System.out.println("for loop Path coord = (" + i + " , " + j + ") Value at coord = " + maze[i][j]);
}//for j
}//for i
}// while
readFile.close();
return maze;
}
txt.File(迷路)の内容
7 12
..+.+.++++++
.++...++...+
..++.....+.+
+.+..++.+..+
+...++....++
+.+++..++..+
++++++++++..
出力-右
for loop Path coord = (0 , 0) Value at coord = 1
for loop Path coord = (0 , 1) Value at coord = 1
for loop Path coord = (0 , 2) Value at coord = 0
for loop Path coord = (0 , 3) Value at coord = 1
for loop Path coord = (0 , 4) Value at coord = 0
for loop Path coord = (0 , 5) Value at coord = 1
for loop Path coord = (0 , 6) Value at coord = 0
for loop Path coord = (0 , 7) Value at coord = 0
for loop Path coord = (0 , 8) Value at coord = 0
for loop Path coord = (0 , 9) Value at coord = 0
for loop Path coord = (0 , 10) Value at coord = 0
for loop Path coord = (0 , 11) Value at coord = 0
for loop Path coord = (1 , 0) Value at coord = 1
for loop Path coord = (1 , 1) Value at coord = 0
for loop Path coord = (1 , 2) Value at coord = 0
for loop Path coord = (1 , 3) Value at coord = 1
for loop Path coord = (1 , 4) Value at coord = 1
for loop Path coord = (1 , 5) Value at coord = 1
for loop Path coord = (1 , 6) Value at coord = 0
for loop Path coord = (1 , 7) Value at coord = 0
for loop Path coord = (1 , 8) Value at coord = 1
for loop Path coord = (1 , 9) Value at coord = 1
for loop Path coord = (1 , 10) Value at coord = 1
for loop Path coord = (1 , 11) Value at coord = 0
for loop Path coord = (2 , 0) Value at coord = 1
for loop Path coord = (2 , 1) Value at coord = 1
for loop Path coord = (2 , 2) Value at coord = 0
for loop Path coord = (2 , 3) Value at coord = 0
for loop Path coord = (2 , 4) Value at coord = 1
for loop Path coord = (2 , 5) Value at coord = 1
for loop Path coord = (2 , 6) Value at coord = 1
for loop Path coord = (2 , 7) Value at coord = 1
for loop Path coord = (2 , 8) Value at coord = 1
for loop Path coord = (2 , 9) Value at coord = 0
for loop Path coord = (2 , 10) Value at coord = 1
for loop Path coord = (2 , 11) Value at coord = 0
出力-間違っています
for loop Path coord = (3 , 0) Value at coord = 1 //Value should = 0 because ="+"
for loop Path coord = (3 , 1) Value at coord = 0