2017-02-06 18 views
0

これを苦労してコード化しています...私は2Dグリッドで数字の特定の組み合わせを探したいと思います。この組み合わせは既にわかっており、ArrayListに格納されています。キャッチは、単語の検索パズルのように、8つの基本的な方向(0〜7のintとして格納されている)のANYから組み合わせを完了できることです。私はその方向を見つけようとしているが、正直なところ、私はどこへ行く、ここからはわからない...最初の桁を見つけた後、2D配列内の正しい組み合わせを見つける

[...] //This is only a part of the bigger code I'm working on 

for (i = 0; i < grid.length; ++i){ 
    for (j = 0; j < grid[i].length; ++j){ 
     if (grid[i][j] == digits.get(0){ //Here I find the 1st digit of my number 


     } 
    } 
} 

入力した番号が任意の長さのことと方向がいる場合にのみ返されることができることを覚えておいてください私は全体の数字を取得します。私は文字通り失われているので、どんなアドバイスもありがとう、ありがとう。

+0

与えられた方向にテーブルを横断できるクラスを最初にエンコードしてみてください。たとえば、トップボトムまたはボトムトップです。次に、そのトラバーサーとして8つの可能なすべての方向を列挙し、シーケンスのトラバーサーチェックごとに列挙することができます。 –

答えて

0
for (i = 0; i < grid.length; ++i){ 
for (j = 0; j < grid[i].length; ++j){ 
    int gridItemIndex = digits.indexOf(grid[i][j]) 
    { 
     if(gridItemIndex != -1) 
     { 
      // now you are sure grid[i][j] IS IN LIST 
      // gridItemIndex tells THE INDEX NUMBER OF grid[i][j] in ArrayList(digits) 
     } 
    } 
} 

私はこれがあなたが言うことに近づくことを望みますか?あなたは数字のArrayListのグリッド[i] [j]の有無とインデックス番号を検索するために、さらに議論していない前に、私の答えを-vefyないでくださいしようとしている場合と

int gridItemIndex = digits.indexOf(grid[i][j]) 
{ 
    if(gridItemIndex != -1) 
    { 
     // now you are sure grid[i][j] IS IN LIST 
     // gridItemIndex tells THE INDEX NUMBER OF grid[i][j] in ArrayList(digits) 
    } 
} 

お得な理由とあなたの予想される組み合わせの最終的な結果はまだ少しぼやけている、助けてうれしいだろう

0

私は問題はここにあなたが大きな画像を見ていないと思う。あなたの出発点は以下の通りです。 今私がやるべきことは、あなたの組み合わせの長さをあらゆる方向にテーブルをチェックするメソッドを書くことです。北へのチェックは、基本的にグリッド[startingX] [startingY--]を実行しています。そのロジックをあらゆる方向に適用し、「範囲外」エラーを説明する場合は、すぐに解決します。

//2D array 
    int[][] grid = new int[25][25]; 
    //Your combination 
    List<Integer> combination = new ArrayList<>(); 

    //Loop over the 2D array to find your starting point 
    for (int i = 0; i<25; i++) { 
     for (int j = 0; j<25; j++) { 

      if (grid[i][j] == combination.get(0)) { //If we find the first element of your combination 
       //Check in all cardinal directions 
       checkDirections(i, j); 
      } 
     } 
    } 
関連する問題