public MainWindowViewModel() { var gameBoard = new GameBoard(Parameters.RowCount, Parameters.ColumnCount); directionBuffer = new DirectionBuffer(Parameters.InitialDirection); SnakeState = new SnakeState(Parameters.SnakeInitialLength, Parameters.ScoreFactor); gameLogic = new GameLogic(gameBoard, directionBuffer, SnakeState); FlatBoard = new ObservableCollection <Cell>(gameBoard.FlatBoard()); RowCount = gameBoard.RowCount; ColumnCount = gameBoard.ColumnCount; }
public GameLogic(GameBoard gameBoard, DirectionBuffer directionBuffer, SnakeState snakeState) { this.directionBuffer = directionBuffer; this.snakeState = snakeState; snake = new Snake(gameBoard, snakeState, Parameters.SnakeInitialRow, Parameters.SnakeInitialColumn, Parameters.SnakeInitialLength); food = new Food(gameBoard, snake); speedMsPerMove = Parameters.SpeedMsPerMove; snakeState.IsDead = true; Task.Run(() => KeepMoving()); }