質問: 2d配列インデックスを1dインデックスに変換します javaでコーディングしているチェスバリアント用の2つの配列があります...これまでのところ、ボードを1d配列(サイズは32)として表すコンソールバージョンがありますが、そのためのguiの作成に取り組んでおり、必要です。 4x8グリッドとして表示されるので、jpanelsの2次元配列があります...質問は、4x8配列であるという事実を前提として、array [i] [j]インデックスをarray [i]に変換できる式はありますか?
回答: このように考えてください:たまたま1次元配列である1つの配列があります。これは、実際には、2次元配列の項目の長い連結です。したがって、サイズが5 x 3(5行、3列)の2次元配列があるとします。そして、1次元配列を作成したいと思います。行ごとに連結するか、列ごとに連結するかを決定する必要があります。この例では、連結は行ごとであると言います。したがって、各行の長さは3列であるため、1次元配列は3の「ステップ」で定義されていると考える必要があります。したがって、1次元配列の長さは5 x 3 = 15になり、次のようになります。アクセスポイントを見つける必要があります。したがって、2次元配列の2番目の行と2番目の列にアクセスしているとすると、3ステップ(最初の行)+ 2番目の行のステップ数、つまり3 + 2 = 5になります。は-1であるゼロベースのインデックスであるため、インデックス4になります。今、特定の定式化のために:int onedindex = (row * length_of_row) + column; // indexes したがって、上記の例として、あなたは持っていることになりますonedindex = (1 * 3) + 1 そしてそれはそれであるはずです