private async Task ExecuteAsync(bool render) { _render = render; await _game.Execute(); if (_render) { Console.Clear(); } while (_gameOutput.HasInputToRead()) { var x = (int)await _gameOutput.ReadInput(); var y = (int)await _gameOutput.ReadInput(); var character = (int)await _gameOutput.ReadInput(); Render(x, y, _characters[character]); } if (_render) { Console.WriteLine(); } }
private async Task <long> GetTractorAreaAsync(int fieldSize) { long pullCount = 0; for (var y = 0; y < fieldSize; y++) { for (var x = 0; x < fieldSize; x++) { InitialiseDrone(); var controllerTask = _droneController.Execute(); _droneInput.Output(x); _droneInput.Output(y); var isPulled = await _droneOutput.ReadInput(); pullCount += isPulled; } } return(pullCount); }