static void Main(string[] args) { Console.CursorVisible = false; var lockObject = new object(); RenderOutput writeToConsole = s => { lock (lockObject) { Console.Clear(); Console.WriteLine(s); } }; var manager = new GameInstanceManager( writeToConsole, new ConsoleKeyboardInput(lockObject), () => TicTacToeGameFactory.CreateWithRandomPlayers(lockObject) ); while (!manager.Exited) { Thread.Sleep(1000); } }
public GameInstanceManager(RenderOutput render, KeyboardInput keyboard, Func <IGameInstance> gameFactory) { _render = render; _keyboard = keyboard; _gameFactory = gameFactory; render(StartNewGameMessage); _keyboard.KeySent += StartGameOnEnterPress; }
private void CreateGameManager() { RenderOutput writeOutputToField = output => this.renderedOutput = output; _keyboard = new FakeKeyboardInput(); Func <FakeGameInstance> gameInstanceFactory = () => _fakeGameInstance = new FakeGameInstance(); _manager = new GameInstanceManager(writeOutputToField, _keyboard, gameInstanceFactory); }