There is an array
private int[][]inColor=new int[6][6]; For convenience, I use only internal cells (that is, I do not fill the external cells with data). example
0 0 0 0 0 0 1 2 3 0 0 2 1 1 0 0 3 2 1 0 0 0 0 0 0 The method for the search takes the address of the selected element and must assign to zero neighboring elements with the same values ββ(as in bubble breaker).
Search method
private void serch(int x,int y){ int cik=inColor[x][y]; if (x>0&x<6){ if (y>0&y<6){ if (inColor[x-1][y]==cik){ Log.d("oolo", "ravni " + inColor[x - 1][y]); Log.d("oolo", "ravni " + inColor[x][y]); inColor[x][y]=0; serch(x - 1, y); } if (inColor[x+1][y]==cik){ Log.d("oolo", "ravni " + inColor[x + 1][y]); Log.d("oolo", "ravni " + inColor[x][y]); inColor[x][y]=0; serch(x + 1, y); } if (inColor[x][y-1]==cik){ Log.d("oolo", "ravni " + inColor[x ][y-1]); Log.d("oolo", "ravni " + inColor[x][y]); inColor[x][y]=0; serch(x , y-1); } if (inColor[x][y+1]==cik){ Log.d("oolo", "ravni " + inColor[x ][y+1]); Log.d("oolo", "ravni " + inColor[x][y]); inColor[x][y]=0; serch(x , y+1); } } } print(); } UPD problem solved:
private void serch(int x,int y,int cik){ if (x>0&x<6){ if (y>0&y<6){ if (inColor[x-1][y]==cik){ Log.d("oolo", "ravni " + inColor[x - 1][y]); Log.d("oolo", "ravni " + inColor[x][y]); inColor[x][y]=0; inColor[x-1][y]=0; serch(x - 1, y,cik); } if (inColor[x+1][y]==cik){ Log.d("oolo", "ravni " + inColor[x + 1][y]); Log.d("oolo", "ravni " + inColor[x][y]); inColor[x][y]=0; inColor[x+1][y]=0; serch(x + 1, y,cik); } if (inColor[x][y-1]==cik){ Log.d("oolo", "ravni " + inColor[x ][y-1]); Log.d("oolo", "ravni " + inColor[x][y]); inColor[x][y]=0; inColor[x][y-1]=0; serch(x , y-1,cik); } if (inColor[x][y+1]==cik){ Log.d("oolo", "ravni " + inColor[x ][y+1]); Log.d("oolo", "ravni " + inColor[x][y]); inColor[x][y]=0; inColor[x][y+1]=0; serch(x , y+1,cik); } } } print(); }