2011-01-07 84 views
1

我正在研究這種細菌生命遊戲,我必須做的事情。檢查二維數組中某個索引周圍指數的最佳方法

基本上我有一個二維字符串數組假設20 20點。

什麼是檢查各地在一定索引的所有8個點的最好辦法。假設每個指標代表一種細菌。對於每個細菌(指數),我必須檢查這個指數週圍的8個點是否有另一個細菌,如果指數中有細菌,它就代表一個簡單的「*」,星號。

什麼會去有關檢查各地各項指標均8個點的最好辦法,因爲基於什麼是圍繞某個索引的索引我必須做出一定的改變等

我唯一的想法拿出一堆if語句來檢查所有8個景點,我想知道是否有更好的方法可以做到這一點

ex: 第1行 - www,第2行= ww,第3行 - www,

如果我在O索引處,檢查某個字符串的所有索引點的最佳方法是什麼?

對不起,我不是很擅長解釋我的問題,英文不好: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 
      } 
     } 
    } 
}