public Game CreateGame() { lock (locker) { var container = new Bootstrapper().BootstrapApplication(); container.SetDefaultsToProfile("FunctionalTests"); container.GetInstance <ConsoleEventLogger>(); var aiPlayerBuilder = container.GetInstance <AiPlayerBuilder>(); _gameSpec = new GameSpec() .WithPlayer(aiPlayerBuilder.BuildAiPlayer("AI - 1", new Guid())) .WithPlayer(aiPlayerBuilder.BuildAiPlayer("AI - 2", new Guid())) .BasicGame() .WithSet <FirstGame>(); var gameBuilder = new GameBuilder(); var game = gameBuilder.Initialize(_gameSpec, container.GetInstance <GameScope>()); return(game); } }
public void Run() { var game = GameBuilder .Initialize(_startingPlayerMapper, _players, _boardService) .WithBoardSize(3) .FirstPlayerSet(PlayerType.As().Human("Player", "X")) .SecondPlayerSet(PlayerType.As().Computer("Computer", "O")) .Set(StartingPlayer.As().FirstPlayer()) .Build(); do { game.Accept(new DisplayBoardVisitor()); game.Start(); game.Play(); game.CheckForWin(); game.SwitchPlayer(); game.Over(); game.PlayAgain(); game.End(); } while (game.StillGoing); }
private static IGameBuilder BuildGameBuilder(IStartingPlayerMapper startingPlayerMapper = null, IPlayers players = null, IBoardService boardService = null, int?size = null, IPlayerType firstPlayerType = null, IPlayerType secondPlayerType = null, IStartingPlayer startingPlayer = null) { startingPlayerMapper = startingPlayerMapper ?? new MockStartingPlayerMapper().AddReturnsItself(); players = players ?? new MockPlayers().AddReturnsItself(); boardService = boardService ?? new MockBoardService(); size = size ?? 3; firstPlayerType = firstPlayerType ?? new MockPlayerType(); secondPlayerType = secondPlayerType ?? new MockPlayerType(); startingPlayer = startingPlayer ?? new MockStartingPlayer(); return(GameBuilder .Initialize(startingPlayerMapper, players, boardService) .WithBoardSize(size.Value) .FirstPlayerSet(firstPlayerType) .SecondPlayerSet(secondPlayerType) .Set(startingPlayer)); }
private static void Main(string[] args) { try { int aiPlayerCount = AskForAiPlayerCount(); _container = new Bootstrapper().BootstrapApplication(); var aiPlayerBuilder = _container.GetInstance <AiPlayerBuilder>(); var gameSpec = new GameSpec() .BasicGame() //.WithSet<FirstGame>() //.WithSet<BigMoney>() //.WithSet<Interaction>() //.WithSet<SizeDistortion>() .WithSet <Deconstruction>() .WithPlayer(_container.GetInstance <PlayerSpec <ConsolePlayerController> >().WithPlayerName("You")) ; var i = 0; aiPlayerCount.Times(() => { gameSpec.WithPlayer(aiPlayerBuilder.WithTreeSpec(new TreeSpec { MaxDepth = 100 }).BuildAiPlayer("AI - " + ++i)); }); var gameBuilder = new GameBuilder(); var scope = _container.GetInstance <GameScope>(); new ConsoleEventLogger(scope.EventAggregator); Game game = gameBuilder.Initialize(gameSpec, scope); game.Start(); } catch (Exception) { throw; } }
public RoundResults Start() { var winners = new Population(); var competitors = new Population(_competitors); var gameScores = new SeriesResults(); do { var playersInCurrentGame = new Population(); var game = _gameBuilder.Initialize(MakeGameSpec(competitors, playersInCurrentGame), _gameScopeFactory()); var gameResult = game.Start(); gameScores.Add(gameResult); var winner = playersInCurrentGame.Single(c => c.Id.ToString() == gameResult.WinningPlayer.Id.ToString()); winners.Add(winner); } while (competitors.Count > 0); return(new RoundResults { Winners = winners, Scores = gameScores }); }