//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]); } } }
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; }
// если в колонке отсутствует фишка, добавляем новую, падающую сверху. 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); } }
public bool TryToMatch(MatchBase from, MatchBase to) { return(match3Manager.MakeSwap(from.X, from.Y, to.X, to.Y)); }