2011-01-07 15 views
1

私はこのバクテリアライフゲームの仕事に取り組んでいます。2d配列の特定のインデックスのインデックスを調べる最も良い方法

基本的に私は2D文字列配列は、のは、特定のインデックスの周りのすべての8つのスポットをチェックするための最良の方法だろう20

20なに言わせています。各指標は細菌を表すと考えられています。それぞれのバクテリア(インデックス)について、インデックスにバクテリアがあれば、このインデックスの周りの8つのスポットの中に別のバクテリアがあるかどうかを確認する必要があります。単に「*」、アステリックで表されます。特定のインデックスの周りの指標であるものに基づいて、私はいくつかの変更をしなければならないためなど、各インデックスの周りのすべての8のスポットをチェックして行くための最良の方法だろう何

私が持っている唯一のアイデア8つ全ての点を調べるif文がたくさんあるので、これを行うより良い方法があるかどうか疑問に思っていた。

例: 行1 - www、2行目、

Oインデックスの場合は、特定の文字列のインデックス・スポットをすべて調べるにはどうすればよいでしょうか。

申し訳ありませんが、私は私の問題、悪い英語を説明することはあまりよくありません。

ありがとうございました。ここで

答えて

1

ので、あなたがこの

char[][] table = new char[20][20] 

for(int i = 0; i < 20; i++) { 
    for(int j = 0; j < 20; j++) { 
     int surroundingBacteria = 0; 
     for(int x = max(i-1,0); x < min(20,i+1); x++) { 
      for(int y = max(i-1,0); y < min(20,i+1); y++) { 
       if(table[x][y] == '*') surroundingBacteria++; 
      } 
     } 
     switch(surroundingBacteria) { 
      // put your case logic here 
     } 
    } 
} 
のようなものを持っています
0

は、私が過去にこれを達成してきた方法です:

for(int x = -1; x<=1; x++){ 
    if (i+x < xLength && i+x >= 0){ 
     for(int y = -1; y<=1; y++){ 
      if(j+y < yLength && j+y >= 0){ 
       //logic goes here 
      } 
     } 
    } 
} 
関連する問題