Beispiel #1
0
        //public void GenerateNewList(int col, int row)
        //{
        //    this._col = col;
        //    this._row = row;
        //    allMathElements = null;
        //    allMathElements = new MatchBase[col, row];

        //    while (true)
        //    {
        //        GenerateRandomElements();
        //        // Поле, при старте игры не должно содержать линий.
        //        // пробуем, если на поле есть линии
        //        if (ChackForMatches().Count > 0)
        //            continue;
        //        // пробуем, если на поле нет ни одного хода
        //        if (!CheckForPossibles())
        //            continue;
        //        break;
        //    }

        //    if (OnEndGenerationElements != null)
        //        OnEndGenerationElements(allMathElements);
        //}

        //Создание случайно-генерируемого масива обектов.
        public void GenerateRandomElements()
        {
            for (int x = 0; x < _col; x++)
            {
                for (int y = 0; y < _row; y++)
                {
                    int randomLength = (_col + _row > 10) ? GameColors.Length : GameColors.Length / 2;
                    int colorIndex   = UnityEngine.Random.Range(0, randomLength);
                    allMathElements[x, y] = new MatchBase(x, y, GameColors[colorIndex]);
                }
            }
        }
Beispiel #2
0
        public void SwapPieces(MatchBase a, MatchBase b)
        {
            // обмениваем значения A и B
            MatchBase tmp = new MatchBase(a.X, a.Y, a.MyColor);

            a.X = b.X;
            a.Y = b.Y;
            b.X = tmp.X;
            b.Y = tmp.Y;
            allMathElements[a.X, a.Y] = a;
            allMathElements[b.X, b.Y] = b;
        }
Beispiel #3
0
        // если в колонке отсутствует фишка, добавляем новую, падающую сверху.
        public void AddNewPieces()
        {
            List <MatchBase> newElements = new List <MatchBase>();

            for (int x = 0; x < _col; x++)
            {
                for (int y = 0; y < _row; y++)
                {
                    if (allMathElements[x, y] == null)
                    {
                        int randomLength = (_col + _row > 10) ? GameColors.Length : GameColors.Length / 2;
                        int colorIndex   = UnityEngine.Random.Range(0, randomLength);
                        allMathElements[x, y] = new MatchBase(x, y, GameColors[colorIndex]);
                        newElements.Add(allMathElements[x, y]);
                    }
                }
            }
            if (OnCreateNewEvent != null)
            {
                OnCreateNewEvent(newElements);
            }
        }
Beispiel #4
0
 public bool TryToMatch(MatchBase from, MatchBase to)
 {
     return(match3Manager.MakeSwap(from.X, from.Y, to.X, to.Y));
 }