-(BOOL)isInArray:(CGPoint)point{
if ([valid count]==0) {
return NO;
}
for (NSValue *value in valid) {
CGPoint er=[value CGPointValue];
if(CGPointEqualToPoint(point,er)) return NO;
}
return YES;
}
-(void)check:(CGPoint)next{
if (!next.y==0) {
int ics=(int) next.x;
int igrec=(int)next.y;
if (mat[ics][igrec]==mat[ics-1][igrec]){
if (![self isInArray:next]) {
[valid addObject:[NSValue valueWithCGPoint:next]];
NSLog(@"valid y!=0 : %@",valid);
[self check:CGPointMake(ics-1, igrec)];
}
}
}
y的列,X都行,墊子是C矩陣
什麼,我想在這裏做的是這樣的:我得到一個點,next
,在一個矩陣中,mat
(我會使用結構,但對於測試範圍,我使用CGPoint.it的基本相同的東西),併爲此,我檢查它是否在第一行,如果它不是我檢查該值是否等於上述行的值。如果是,則將該點的座標添加到數組中,並移至上面的值(遞歸)。我也有左,右,下的ifs ...但這個想法是一樣的。
我的問題:
- 出於某種原因,它不因爲它應該工作,即使採用了全1倍的值
- 的NSMutableArray裏我使用存儲點的墊子總是空(注意, NSLog得到調用,所以它應該已經添加了一個對象)
- 遞歸性是否與方法一起工作?
- 如果你有更好的想法如何做到這一點......我聽
0123..n'm現在使用NSSet,移動了一些東西......它的工作原理..但它不工作,因爲它應該..我會嘗試修復它,但如果它不工作,我會把代碼在這裏......也許你可以幫助我一些:) – skytz 2012-04-12 17:25:51
所以我斷定它不會調用'[自檢:CGPointMake(ics-1,igrec)];'...任何想法? (或者如果它...它不能遞歸地工作) – skytz 2012-04-12 17:40:25
它似乎是我的一部分的錯誤..一個小..但現在它完美的工作..謝謝 – skytz 2012-04-12 17:57:19