0

2 つの異なるクラスで、2 つの異なる目的に使用できる 2D 配列を作成したいと考えています。たとえば、intの2次元配列があるとしましょう

int[][] grid = {{1, 1, 1, 1},
                {1, 1, 1, 1},
                {1, 1, 1, 1},
               {1, 1, 1, 1}}; 

この 2D 配列の最初の目的は、バッファリングされた画像を 2D ゲームの一部として設定することです (バッファリングされた画像は、岩の層を表します。

ここで、まったく同じ 2D 配列を使用して AI の検索関数を作成できるようにするデータ構造を定義したいとします。基本的に A* アルゴリズムを使用して、2D 配列の各位置に「コスト"移動するため。私の目標は、効率的で、何かをしようとするときに車輪を再発明することのない 2D Java ゲームを作成することです。私の質問からの私の希望は、1 つのクラスで 2D 配列を宣言し、同じ 2D 配列を使用して 2 つのことを行い、その配列の各要素に番号を割り当てて、移動のコストを計算し、2D を使用できるようにすることです。配列を使用して、その配列の各要素に同一の画像を表示します。

以下は私がこれまでに行ったことです。

import java.util.*;

public class Map {

    boolean goal_Position = false;
    boolean start_Position = false;
    List neighbors = new ArrayList();

    public int createGrid(int x, int y) {
        int[][] grid = {{1, 1, 1, 1},
            {1, 1, 1, 1},
            {1, 1, 1, 1},
            {1, 1, 1, 1}};
        return grid[x][y];
    }

}

public class MainMap {

    public void soemthing(){
         Map m = new Map();
       for(int i = 0; i < createGrid[][].length; i++){
           for(int j = 0; j < createGrid[][].length; j++){

           }
       }
    }
    public static void main(String something[]){

        System.out.print(""+soemthing());

    }
}

私の質問があいまいでも支離滅裂でもないことを願っています。希望は、さまざまなことに使用できる配列を持つことです。最後の数行でコードが機能していないことを認識しています。

for(int i = 0; i < createGrid[][].length; i++){
           for(int j = 0; j < createGrid[][].length; j++){

           }
       }

クラスの予期されるエラーをスローし、メインメソッドでそれを返そうとすると void が機能しないことを知っています。これに関する支援をいただければ幸いです。

4

2 に答える 2

1

配列内の単一の要素を返す代わりに、配列全体を返しませんか?このような:

public int[][] createGrid() {
    int[][] grid = {{1, 1, 1, 1},
        {1, 1, 1, 1},
        {1, 1, 1, 1},
        {1, 1, 1, 1}};
    return grid;
}

そして、次のようにアクセスします。

Map mapInstance = new Map();
int[][] grid = mapInstance.createGrid();
for(int i = 0; i < grid.length; i++){
       for(int j = 0; j < grid[0].length; j++){

       }
   }
于 2012-06-26T11:06:52.270 に答える