0

これはおそらく非常に基本的なことですが、何時間も試してみましたが、まだ自分でこれを理解することはできません. だから今、私は AI クラスの 8 パズル ゲームをやっています。「032 145 678」などの一連の数字を入力する必要があり、これを 3x3 マトリックスに格納するだけでよく、0 は基本的に空のブロックを表します。したがって、そのユーザー入力を取得して、{{032},{145},{678}} のように 3x3 行列として格納する必要があります。

編集:

public void ReadFromTxt(String file) throws FileNotFoundException, IOException {
    String read; 
    FileReader f = new FileReader(file);
    int i = 0;
    int j;
    BufferedReader b = new BufferedReader(f);
    System.out.println("Loading puzzle from file...");
    while((read = b.readLine())!=null){
        if(read.length()==3){
            for(j=0;j<3;j++){
                board[i][j] = (int)(read.charAt(j)-48);
            }
        }
        i++;
    }
    b.close();
    System.out.println("Puzzle loaded!");
}
4

1 に答える 1

0

最善の方法は、ユーザーに数字をテキスト ファイルに保存してもらうことです。テキスト ファイルの形式は 3 行で、各行には 3 桁のみを含める必要があり、数字は各行の先頭から始まります。

プログラムは、数字が格納されているファイルの名前を引数として取得する必要があります。

プログラムは、符号なし整数の 3x3 配列を自分自身に割り当て、ファイルを開き、各行を順番に読み取ります。行の形式が正しいことを確認します。先頭に 3 桁の数字が必要で、その後の空白は許可されます。正しくない場合、プログラムはユーザーにエラー メッセージを表示して終了します。

行の形式が正しい場合、数字は配列の行に格納されます。

3 行以上ある場合も、プログラムはエラー メッセージを出力して終了します。

于 2016-09-30T21:37:07.100 に答える