/// <summary> /// The Engine of the Game. /// </summary> internal void Engine() { this.board = new Board(MAX_ROWS, MAX_COLUMNS, MAX_MINES); this.boardScanner = new BoardScanner(this.board); this.boardManager = new BoardManager(this.board, this.boardScanner); this.board.Accept(new MineSetter(new RandomGenerator())); this.GameData.Renderer.PrintGameBoard(this.board); while (true) { this.GameData.Renderer.Write( "\nChoose and press Enter:\n" + "'" + PlayerCommand.ReturnKey + "'" + " to return to the menu or\nEnter row and column separated by a space: \n"); // getting player input as object var command = new PlayerCommand(Console.ReadLine()); if (command.IsBadInput) { this.GameData.Renderer.Write(command.Message); } else { if (command.IsReturnKey || this.IsGameOver(command.Row, command.Col)) { this.Run(); } } } }
public GameViewModel(IEventAggregator events, IGameBoard gameBoard, IBoardScanner scanner) { _events = events; _gameBoard = gameBoard; _scanner = scanner; events.SubscribeOnPublishedThread(this); Fields = new BindableCollection <FieldModel>(); _stopwatch = new Stopwatch(); }
public BoardManager(IBoard board, IBoardScanner scanner) { this.board = board; this.boardScanner = scanner; }
public void PrintAllFields(IBoard board, IBoardScanner boardScanner) { var areAllFieldsOpened = true; this.PrintGameMatrix(board, areAllFieldsOpened); }