public async Task Run(IList <ICommand> commands) { _parserService.Commands = commands; var gameState = new GameState { GameRunning = true, World = await _worldFactory.Get() }; this.Introduction(gameState); while (gameState.GameRunning) { var playerInput = Console.ReadLine(); if (string.IsNullOrEmpty(playerInput) == false) { var result = await _parserService.ParseInput(playerInput, gameState); gameState.TurnCounter++; _displayService.UpdateDisplay(gameState, result); } } }