Мне просто интересно, могут ли помеченные изображения занимать память / места (я не знаю, как их назвать, поэтому я называю их памятью / местами) ...
Код ниже используется для поиска совпадений, а затем удаляет их из поля зрения, когда их 3 или более в строке / столбце. Дело в том, что кажется, что оператор if работает только один раз. Как только они были использованы, они перестают находить спички.
Есть ли способ "освобождения" занятых операторов if или есть другой способ сделать это?
for( int y=0; y<HEIGHT-2; y++ ){
for( int x=0; x<WIDTH-2; x++ ){
//don't match empty squares
if(grid[x][y] == nil){
continue;
NSLog(@"continue");
}
if(x >= 2 && x <= WIDTH -2 && y >= 2 && y <= HEIGHT - 2) {
//Check to the right
if(grid[x+1][y].tag == grid[x][y].tag && grid[x+2][y].tag == grid[x][y].tag) {
NSLog(@"to the right");
grid[x][y].alpha = 0;
grid[x+1][y].alpha = 0;
grid[x+2][y].alpha = 0;
NSLog(@"Match to the right grid[x][y].tag %d",grid[x][y].tag);
NSLog(@"Match to the right grid[x+1][y].tag %d",grid[x+1][y].tag);
NSLog(@"Match to the right grid[x+2][y].tag %d",grid[x+2][y].tag);
}
//Check to the left
else if (grid[x-1][y].tag == grid[x][y].tag && grid[x-2][y].tag == grid[x][y].tag){
NSLog(@" to the left");
grid[x][y].alpha = 0;
grid[x+1][y].alpha = 0;
grid[x+2][y].alpha = 0;
NSLog(@"Match to the left grid[x][y].tag %d",grid[x][y].tag);
NSLog(@"Match to the left grid[x-1][y].tag %d",grid[x-1][y].tag);
NSLog(@"Match to the left grid[x-2][y].tag %d",grid[x-2][y].tag);
}
//Check up
else if(grid[x][y-1].tag == grid[x][y].tag && grid[x][y-2].tag == grid[x][y].tag){
NSLog(@"up");
grid[x][y].alpha = 0;
grid[x][y-1].alpha = 0;
grid[x][y-2].alpha = 0;
NSLog(@"Match up grid[x][y].tag %d",grid[x][y].tag);
NSLog(@"Match up grid[x][y-1].tag %d",grid[x][y-1].tag);
NSLog(@"Match up grid[x][y-2].tag %d",grid[x][y-2].tag);
}
//Check down
else if(grid[x][y+1].tag == grid[x][y].tag && grid[x][y+2].tag == grid[x][y].tag){
NSLog(@"down");
grid[x][y].alpha = 0;
grid[x][y+1].alpha = 0;
grid[x][y+2].alpha = 0;
NSLog(@"Match down grid[x][y].tag %d",grid[x][y].tag);
NSLog(@"Match down grid[x][y+1].tag %d",grid[x][y+1].tag);
NSLog(@"Match down grid[x][y+2].tag %d",grid[x][y+2].tag);
}
else{
GamePaused = NO;
}
}
}