2011-07-21 43 views
0

我已經把圓圈分成了行和列,並且在圓圈中形成的每個塊(正方形)都具有相同的大小。我有每個方塊/方塊的X和Y座標。每個塊被定義爲好或不好。算法問題

問題:我需要在同一行上添加2個塊,並確定結果是好還是壞。如果任何一個塊不好,則將兩個塊的組稱爲壞。如果兩者都是好的,那麼只有組羣是好的。它的算法是什麼?我需要做視覺基礎語言。另外,我需要做更多的事情,比如加3塊,並確定3塊的組合是好還是壞。在這種情況下,如果任何塊不好,整個團隊都不好。

更新:當我把圓圈分成行和列即塊時,我刪除了不是正方形的塊。也就是說,那些觸及圓周的正方形/方塊被刪除。我明天可以上傳照片。

+5

評論:1)請註明意味着什麼好/壞(手動輸入)2)更好的反應,試着畫出你現在有什麼樣的圖片,你需要什麼?後來。 –

+0

我試圖把這張照片放在這裏,但我的分數還不夠,並且沒有讓我在這裏上傳照片。我現在的分數是10。 – user847323

+0

是的,好/壞是輸入。我測試了這些塊,一些塊正在工作,其他塊沒有。所以,我給他們這個名字 - 好/壞。 – user847323

回答

0

如果要添加2,則一個badBlock既指在任一側也壞導致3壞上

1)設置結構的N×N個數組{BOOL切圓,badBlock,badGroup;} 何處切圓如果塊位於圓圈中,則爲true,如果塊的位置不良,badBlock爲true,並且最初badGroup爲false。

3)

int length=2; 
length--; 
for (int i=0; i<N;i++) 
    for(int j=0; j<N;j++) 
    if(array[i,j].badBlock){ 
     for(int x=-length;x<=length;x++) 
      if(i+x>=0 and i+x<N and array[i+x,j].inCircle) then array[i+x,j].badGroup=true; 
     for(int y=-length;y<=length;y++) 
      if(j+y>=0 and j+y<N and array[i,j+y].inCircle) then array[i,j+y].badGroup=true; 
} 
+0

嘿......這個解決方案是上帝,但我不必檢查cloumn案件。就像,當我迭代一行時,我只考慮行中的塊。您可以在這裏看到更新的問題,並幫助我獲得正確的解決方案。 – user847323

+0

http://stackoverflow.com/questions/6780456/algorithm-problem-with-the-picture-attached – user847323