私はMinesweeperのゲームに取り組んでおり、昨日の朝まで正確に見えます。私自身は解決できない問題があります。 状況は、次のようになります。私は9は爆弾を意味し、0は、自由空間を意味生成されたすべての値、とマインスイーパのフィールドを生成した1で、2二次元配列を得ました。それをフィールドと呼ぶことができます。これは整数配列です。基本的に9x9フィールドです。コードの適切な作業のためのフレームとして+1行のゼロがあります。それ以外の場合は、コード実行時にOutOfBoundsErrorを返します。 例:Java-多次元配列での作業中に不正な値を返します
00000000000 0
00000019100 1
01110011100 2
02910000000 3
09321110000 4
02911910000 5
01111111110 6
01110112910 7
02920192110 8
02920111000 9
01110000000 10
00000000000 11
私の二番目の配列は文字列配列user_fieldであり、それは(すべてnull
フィールドは.
に置き換えられます)空白になって、ここではコマンドのユーザーを入力して.
フィールドを開きます。
........... 1
........... 2
........... 3
........... 4
........... 5
........... 6
........... 7
........... 8
........... 9
........... 10
........... 11
........... 12
それは、フィールド、およびそれらの周りのすべての値から開始すべて0の出力を私にする必要があります。例:
nnn 1
n0n 2
nnn 3
私はそれを呼び出すために、このコードを使用します。
for (int i = 1; i < field_h-2; i++) {
for (int j = 1; j < field_w-2; j++) {
if (user_field[i][j]==null) {
user_field[i][j]=".";
}
if(field[i][j]==0) {
for(int k = 0; k< 3; k++) {
for (int n = 0; n< 3; n++) {
user_field[i-1+k][j-1+n] = String.valueOf(field[i-1+k][j-1+n]);
//System.out.print(String.valueOf(field[i-1+k][j-1+n]));
}
}
}
System.out.print(user_field[i][j]);
}
System.out.println(" "+ (i));
}
しかし、現実には、それは(Xは何も-meansない、n個 -means値を。)出力:
xxx 1
x0n 2
nnn 3
私はこのようなことが起こる理由はありません。誰かが私を助けることができますか?私はJavaでそれほど経験はありません、多分私は何かを理解していません。
[mcve]を入力すると手助けするのが簡単になります。 –
また、あなたのコメントが何を意味するのかは明らかではありませんが、あなたがそれを望んでいないとあなたの投稿を編集することができます... –