In un prototipo che sto realizzando, c'è un minigioco simile a Bejeweled. Usando una griglia che è un array 2d ( int[,]
) come posso sapere quando l'utente ha formato una corrispondenza? Mi interessa solo in orizzontale e in verticale.
Dalla parte superiore della mia testa stavo pensando che avrei semplicemente guardato in ogni direzione. Qualcosa di simile a:
int item = grid[x,y];
if(grid[x-1,y]==item)
{
int step=x;
int matches =2;
while(grid[step-1,y]==item)
{
step++;
matches++
}
if(matches>2)
//remove all matching items
}
else if(grid[x+1,y]==item
//....
else if(grid[x,y-1==item)
//...
else if(grid[x,y+1]==item)
//...
Sembra che ci dovrebbe essere un modo migliore. È lì?