Example #1
0
        public MCMatrixLines(int width, int hight, MainWindow mainWindow)
        {
            _MW             = mainWindow;
            _mousePosOnCell = new Point(-1, -1);
            _cellPress      = new Point(-1, -1);
            _boardHW        = new Point(width, hight);
            _grid           = new mcCell[hight, width];
            _glRand         = new Random();
            _listColorNext  = new List <BallColor>();
            _listBallsNext  = new List <Point>();
            _listCellEmpty  = new List <Point>();
            _listReBuild    = new List <Point>();
            _NBallOne       = new Point();
            _NBallTwo       = new Point();
            _NBallThree     = new Point();

            FillGameDesk();

            timer          = new DispatcherTimer();
            timer.Tick    += new EventHandler(timer_Tick);
            timer.Interval = new TimeSpan(0, 0, 1);
            timer.Start();
            log = new MCLog();
            _MW.lblScore.Content = "0";
        }
Example #2
0
        public void CheckColor(List <Point> listXYposition, Directions where, MCLog log)
        {
            listXYposition.Add(_coord); log.WriteToLog($"\r\nadd ->search in [{_coord}] dir{where} pos{_cellPosBord}\r\n");
            if (_celRel.CanGo(where))
            {
                switch (where)
                {
                case Directions.Right:
                    if (_cellCurrentColor != _celRel.nR._cellCurrentColor)
                    {
                        log.WriteToLog($"other color rihgt "); return;
                    }
                    log.WriteToLog($"go rihgt ");
                    _celRel.nR.CheckColor(listXYposition, where, log);
                    break;

                case Directions.Left:
                    if (_cellCurrentColor != _celRel.nL._cellCurrentColor)
                    {
                        log.WriteToLog($"other color left "); return;
                    }
                    log.WriteToLog($"go left ");
                    _celRel.nL.CheckColor(listXYposition, where, log);
                    break;

                case Directions.Top:
                    if (_cellCurrentColor != _celRel.nT._cellCurrentColor)
                    {
                        log.WriteToLog($"other color top "); return;
                    }
                    log.WriteToLog($"go top ");
                    _celRel.nT.CheckColor(listXYposition, where, log);
                    break;

                case Directions.Down:
                    if (_cellCurrentColor != _celRel.nD._cellCurrentColor)
                    {
                        log.WriteToLog($"other color down "); return;
                    }
                    ;
                    log.WriteToLog($"go down ");
                    _celRel.nD.CheckColor(listXYposition, where, log);
                    break;

                case Directions.RightTop:
                    if (_cellCurrentColor != _celRel.nTR._cellCurrentColor)
                    {
                        log.WriteToLog($"other color righttop "); return;
                    }
                    log.WriteToLog($"go righttop ");
                    _celRel.nTR.CheckColor(listXYposition, where, log);
                    break;

                case Directions.LeftTop:
                    if (_cellCurrentColor != _celRel.nTL._cellCurrentColor)
                    {
                        log.WriteToLog($"other color lefttop "); return;
                    }
                    log.WriteToLog($"go lefttop ");
                    _celRel.nTL.CheckColor(listXYposition, where, log);
                    break;

                case Directions.RightDown:
                    if (_cellCurrentColor != _celRel.nDR._cellCurrentColor)
                    {
                        log.WriteToLog($"other color rightdown "); return;
                    }
                    log.WriteToLog($"go rightdown ");
                    _celRel.nDR.CheckColor(listXYposition, where, log);
                    break;

                case Directions.LeftDown:
                    if (_cellCurrentColor != _celRel.nDL._cellCurrentColor)
                    {
                        log.WriteToLog($"other color leftdown "); return;
                    }
                    log.WriteToLog($"go leftdown ");
                    _celRel.nDL.CheckColor(listXYposition, where, log);
                    break;

                default:
                    break;
                }
            }
            else
            {
                log.WriteToLog($"\r\ncan't go {where} \r\n---"); return;
            }
        }