Exemple #1
0
        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);
        }