Esempio n. 1
0
 private void CreatePacks()
 {
     for (int i = 0; i < _squarePacks.Length; i++)
     {
         _squarePacks[i] = new model.SquarePack(i);
     }
 }
Esempio n. 2
0
        private model.SquarePack[] GetColumnPacks(int column)
        {
            model.SquarePack[] packs = new model.SquarePack[DefineData.MAX_COLUMN_COUNT];

            for (int i = 0; i < packs.Length; i++)
            {
                packs[i] = _squarePacks[column + (DefineData.MAX_COLUMN_COUNT * i)];
            }

            return(packs);
        }
Esempio n. 3
0
        private model.SquarePack[] GetRowPacks(int row)
        {
            model.SquarePack[] packs = new model.SquarePack[DefineData.MAX_ROW_COUNT];
            int startOrderIndex      = row * DefineData.MAX_ROW_COUNT;

            for (int i = 0; i < packs.Length; i++)
            {
                packs[i] = _squarePacks[startOrderIndex + i];
            }

            return(packs);
        }
Esempio n. 4
0
        private void UpdateCellData(model.SquareCell selectCell)
        {
            model.SquarePack targetPack = null;
            model.SquareCell targetCell = null;
            int equalColumnCount        = 0;
            int equalRowCount           = 0;

            _equalValueCells.Clear();

            for (int i = 0; i < _squarePacks.Length; i++)
            {
                targetPack = _squarePacks[i];
                for (int j = 0; j < targetPack.SquareCells.Length; j++)
                {
                    targetCell = targetPack.SquareCells[j];

                    if (targetCell.BoardCoorinate.column == selectCell.BoardCoorinate.column && targetCell.BoardCoorinate.row == selectCell.BoardCoorinate.row) // 셀렉트셀 이라면 패스 (객체 이퀄연산하자)
                    {
                        continue;
                    }

                    if (targetCell.BoardCoorinate.column == selectCell.BoardCoorinate.column)
                    {
                        _equalColumnCells[equalColumnCount] = targetCell;
                        equalColumnCount++;
                    }
                    else if (targetCell.BoardCoorinate.row == selectCell.BoardCoorinate.row)
                    {
                        _equalRowCells[equalRowCount] = targetCell;
                        equalRowCount++;
                    }

                    if (selectCell.NumberValue == 0) // 빈칸이라면
                    {
                        continue;
                    }
                    else if (targetCell.NumberValue == selectCell.NumberValue)
                    {
                        _equalValueCells.Add(targetCell);
                    }
                }
            }
        }
Esempio n. 5
0
        public void UpdateBoardValue(model.SquareBoard modelSquareBoard)
        {
            view.SquarePack targetPack = null;
            view.SquareCell targetCell = null;

            model.SquarePack modelPack = null;
            model.SquareCell modelCell = null;

            for (int i = 0; i < _squarePacks.Length; i++)
            {
                targetPack = _squarePacks[i];
                modelPack  = modelSquareBoard.SquarePack[i];
                for (int j = 0; j < targetPack.SquareCells.Length; j++)
                {
                    targetCell = targetPack.SquareCells[j];
                    modelCell  = modelPack.SquareCells[j];

                    targetCell.UpdateCell(modelCell);
                }
            }
        }
Esempio n. 6
0
        public void MapSave(model.SquareBoard board)
        {
            model.StageData stageData = new model.StageData();

            model.SquarePack targetPack = null;
            model.SquareCell targetCell = null;
            int column, row;

            for (int i = 0; i < board.SquarePack.Length; i++)
            {
                targetPack = board.SquarePack[i];
                for (int j = 0; j < targetPack.SquareCells.Length; j++)
                {
                    targetCell = targetPack.SquareCells[j];
                    column     = targetCell.BoardCoorinate.column;
                    row        = targetCell.BoardCoorinate.row;

                    stageData.cellDataList.Add(new model.CellData(column, row, targetCell.NumberValue));
                }
            }

            string str = JsonUtility.ToJson(stageData, prettyPrint: true);

            Debug.Log(str);

            using (FileStream fs = new FileStream("Assets/Resources/stage1.json", FileMode.Create))
            {
                using (StreamWriter writer = new StreamWriter(fs))
                {
                    writer.Write(str);
                    writer.Close();
                    writer.Dispose();
                }
                fs.Close();
                fs.Dispose();
            }
        }
Esempio n. 7
0
 private void UpdateSelectPack(model.SquareCell cell)
 {
     _selectPack = _squarePacks[cell.PackIndex];
 }
Esempio n. 8
0
        public void UpdateBoardAim(model.SquareBoard modelSquareBoard)
        {
            view.SquarePack  viewTargetPack  = null;
            view.SquareCell  viewTargetCell  = null;
            model.SquarePack modelTargetPack = null;
            model.SquareCell modelTargetCell = null;

            bool isEqualValue;
            bool isEqualColumn;
            bool isEqualRow;
            bool isSelectCell;

            for (int i = 0; i < _squarePacks.Length; i++)
            {
                viewTargetPack  = _squarePacks[i];
                modelTargetPack = modelSquareBoard.SquarePack[i];

                for (int j = 0; j < viewTargetPack.SquareCells.Length; j++)
                {
                    viewTargetCell  = viewTargetPack.SquareCells[j];
                    modelTargetCell = modelTargetPack.SquareCells[j];
                    isEqualValue    = false;
                    isEqualColumn   = false;
                    isEqualRow      = false;
                    isSelectCell    = false;

                    if (!modelTargetCell.IsOpenValue && (modelTargetCell.IsDuplicatePack || modelTargetCell.IsDuplicateColumn || modelTargetCell.IsDuplicateRow))
                    {
                        viewTargetCell.UpdateTrim(Color.black, false, modelTargetCell.GetTextColor());
                        continue;
                    }

                    if (modelSquareBoard.SelectCell.BoardCoorinate.column == viewTargetCell.BoardCoorinate.column &&
                        modelSquareBoard.SelectCell.BoardCoorinate.row == viewTargetCell.BoardCoorinate.row)
                    {
                        viewTargetCell.UpdateTrim(Color.magenta, false, modelSquareBoard.SelectCell.GetTextColor());
                        isSelectCell = true;
                    }

                    if (isSelectCell)
                    {
                        continue;
                    }

                    for (int k = 0; k < modelSquareBoard.EqaulValueCells.Count; k++)
                    {
                        if (modelSquareBoard.EqaulValueCells[k].BoardCoorinate.column == viewTargetCell.BoardCoorinate.column &&
                            modelSquareBoard.EqaulValueCells[k].BoardCoorinate.row == viewTargetCell.BoardCoorinate.row)
                        {
                            viewTargetCell.UpdateTrim(Color.yellow, true, modelSquareBoard.EqaulValueCells[k].GetTextColor());
                            isEqualValue = true;
                            break;
                        }
                    }

                    if (isEqualValue)
                    {
                        continue;
                    }

                    for (int k = 0; k < modelSquareBoard.EqualColumnCells.Length; k++)
                    {
                        if (modelSquareBoard.EqualColumnCells[k].BoardCoorinate.column == viewTargetCell.BoardCoorinate.column &&
                            modelSquareBoard.EqualColumnCells[k].BoardCoorinate.row == viewTargetCell.BoardCoorinate.row)
                        {
                            viewTargetCell.UpdateTrim(Color.magenta, true, modelSquareBoard.EqualColumnCells[k].GetTextColor());
                            isEqualColumn = true;
                            break;
                        }
                    }

                    if (isEqualColumn)
                    {
                        continue;
                    }

                    for (int k = 0; k < modelSquareBoard.EqaulRowCells.Length; k++)
                    {
                        if (modelSquareBoard.EqaulRowCells[k].BoardCoorinate.column == viewTargetCell.BoardCoorinate.column &&
                            modelSquareBoard.EqaulRowCells[k].BoardCoorinate.row == viewTargetCell.BoardCoorinate.row)
                        {
                            viewTargetCell.UpdateTrim(Color.magenta, true, modelSquareBoard.EqaulRowCells[k].GetTextColor());
                            isEqualRow = true;
                            break;
                        }
                    }

                    if (isEqualRow)
                    {
                        continue;
                    }

                    viewTargetCell.UpdateTrim(Color.grey, false, modelTargetCell.GetTextColor());
                }
            }
        }