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"; }
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; } }