private bool CheckForMatches() { for (int i = 0; i < _rows; ++i) { for (int j = 0; j < _columns; ++j) { if (CheckHorizontal(_candies[i][j].Type, i, j)) { if (Check4TilesHor(_candies[i][j].Type, i, j) != -1) { int iColumn = Check4TilesHor(_candies[i][j].Type, i, j); Candy specialCandy = _candies[i][iColumn]; var newCandyType = RandomGenerator.NextCandy(); var position = new Vector3(_placeHolders[i][iColumn].x, iColumn); specialCandy = ((GameObject)Instantiate(Resources.Load(newCandyType.ToString()), position, Quaternion.identity)).GetComponent <Candy>(); specialCandy.gameObject.name = i.ToString() + "_" + j.ToString(); specialCandy.transform.parent = transform; specialCandy.FallAnimation(_placeHolders[i][iColumn]); } Debug.Log("check hor for : " + i + j); for (int _eachColumn = j; _eachColumn < j - 3; --_eachColumn) { for (int _tempRow = i; _tempRow < i - 3; --_tempRow) { if (CheckVertical(_candies[_tempRow][j].Type, _tempRow, j)) { Debug.Log("check hor ver in hor for : " + _tempRow + j); switch (iRowPos) { case 0: bLShape = true; sShapeName = "L"; break; case 1: bTShape = true; sShapeName = "T"; break; case 2: bLShape = true; sShapeName = "L"; break; } lstSpecialCandy.Add(_tempRow + "," + j + "," + sShapeName); } iRowPos += 1; } iRowPos = 0; iColPos += 1; } iColPos = 0; return(true); } else if (CheckVertical(_candies[i][j].Type, i, j)) { Debug.Log("check ver for : " + i + j); if (Check4TilesVer(_candies[i][j].Type, i, j) != -1) { int iRow = Check4TilesVer(_candies[i][j].Type, i, j); Candy specialCandy = _candies[iRow][j]; var newCandyType = RandomGenerator.NextCandy(); var position = new Vector3(_placeHolders[iRow][j].x, j); specialCandy = ((GameObject)Instantiate(Resources.Load(newCandyType.ToString()), position, Quaternion.identity)).GetComponent <Candy>(); specialCandy.gameObject.name = i.ToString() + "_" + j.ToString(); specialCandy.transform.parent = transform; specialCandy.FallAnimation(_placeHolders[iRow][j]); } for (int _tempRow = i; _tempRow < i - 3; --_tempRow) { for (int _tempCol = j; _tempCol < j - 3; --_tempCol) { if (CheckHorizontal(_candies[i][_tempCol].Type, i, _tempCol)) { Debug.Log("check hor ver in hor for : " + i + _tempCol); bLShape = true; sShapeName = "L"; switch (iColPos) { case 0: bLShape = true; sShapeName = "L"; break; case 1: bTShape = true; sShapeName = "T"; break; case 2: bLShape = true; sShapeName = "L"; break; } lstSpecialCandy.Add(i + "," + _tempCol + "," + sShapeName); } iColPos += 1; } iColPos = 0; iRowPos += 1; } iRowPos = 0; return(true); } } } return(false); }