Exemplo n.º 1
0
    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);
    }