コード例 #1
0
 public GameController(ILogger <GameController> logger, IGameBuilder builder, IGameHost gameHost, IGameSimulationService simulator)
 {
     _logger    = logger;
     _builder   = builder;
     _gameHost  = gameHost;
     _simulator = simulator;
 }
コード例 #2
0
        public CompositionRoot(IDomainEventChannelFactory domainEventChannelFactory,
                               IGameBuilder gameBuilder,
                               IUICommandChannelFactory commandChannelFactory,
                               IGameViewFactory gameViewFactory)
        {
            this.GameId = Guid.NewGuid();


            this.domainEventChannel = MaybeConvertions.ToMaybe(domainEventChannelFactory.Create());

            // Application
            gameService = new GameService(this.domainEventChannel,
                                          new GameInMemoryRepository(),
                                          gameBuilder);

            gameService.GenerateNewGame(this.GameId);


            // View
            this.uiCommandChannel = commandChannelFactory.Create();
            this.gameView         = gameViewFactory.Create(this.uiCommandChannel);

            // Handlers
            this.fromUICommandsToDomainHandler =
                new FromUICommandsToDomainHandler(this.uiCommandChannel, this.gameService, this.GameId);

            this.fromDomainEventsToViewHandler =
                new FromDomainEventsToViewHandler(this.domainEventChannel, this.gameView);
        }
コード例 #3
0
 public CompositionRootBuilder()
 {
     domainEventChannelFactory = new DomainEventChannelFactory();
     gameBuilder           = new GameBuilder();
     commandChannelFactory = new UICommandChannelFactory();
     gameViewFactory       = new GameViewFactory();
 }
コード例 #4
0
ファイル: GameHandler.cs プロジェクト: lehusk/ChessAITest
 public GameHandler(IGameBuilder gameBuilder, IMoveHandler moveHandler, IBoardHandler boardHandler)
 {
     _gameBuilder = gameBuilder;
     _moveHandler = moveHandler;
     _boardHandler = boardHandler;
     Game = null;
 }
コード例 #5
0
 public GameHandler(IGameBuilder gameBuilder, IMoveHandler moveHandler, IBoardHandler boardHandler)
 {
     _gameBuilder  = gameBuilder;
     _moveHandler  = moveHandler;
     _boardHandler = boardHandler;
     Game          = null;
 }
コード例 #6
0
 public GameService(IGameRepository gameRepository, IJudge judge, IGameBuilder gameBuilder, ICPUPlayer cpuPlayer)
 {
     this.gameRepository = gameRepository;
     this.judge          = judge;
     this.gameBuilder    = gameBuilder;
     this.cpuPlayer      = cpuPlayer;
 }
コード例 #7
0
 public void Init(IRegistrator registrator)
 {
     _builder = new GameBuilder();
     registrator.Register(_builder);
     _inputManager     = _builder.GetImpl <IInputManager>();
     _outputManager    = _builder.GetImpl <IOutputManager>();
     _drawLoopExecutor = _builder.GetImpl <IDrawLoopExecutor>();
 }
コード例 #8
0
 public GameService(Maybe <IDomainEventChannel> domainEventChannel,
                    IGameRepository gameRepository,
                    IGameBuilder gameBuilder)
 {
     this.domainEventChannel = domainEventChannel;
     this.gameRepository     = gameRepository;
     this.gameBuilder        = gameBuilder;
 }
コード例 #9
0
 public MinefieldGame(IGameBuilder gameBuilder, IGameStateProcessor gameStateProcessor,
                      IInputManager inputManager, IDisplayManager displayManager)
 {
     _gameBuilder        = gameBuilder;
     _gameStateProcessor = gameStateProcessor;
     _inputManager       = inputManager;
     _displayManager     = displayManager;
 }
コード例 #10
0
        public MainWindow()
        {
            InitializeComponent();

            //TODO: Get UniverseSize from config or UI and draw/resize the canvas
            UniverseSize = 25;

            //TODO: Use dependency injection
            gameBuilder = new GameBuilder(new GameOfLife(UniverseSize));
            BuildAndDraw();
        }
コード例 #11
0
        private static IParticipant GetOrAddParticipantIfMissing(IGameBuilder gameBuilder, Dictionary <IIdentifier, IParticipant> participantDictionary, IIdentifier participantIdentifier)
        {
            if (!participantDictionary.ContainsKey(participantIdentifier))
            {
                IParticipant student = gameBuilder.CreateParticipant(participantIdentifier);
                participantDictionary.Add(participantIdentifier, student);
                student.Sign();
            }

            return(participantDictionary[participantIdentifier]);
        }
コード例 #12
0
        public void TestPlayerRaceRandomization()
        {
            Game         Game    = null;
            IGameBuilder builder = NewGameBuilder.Create().
                                   SetMap(new DemoMap()).
                                   SetPlayerName("Player 1").
                                   SetPlayerName("Player 2").
                                   SetPlayerName("Player 3");
            IDictionary <Type, IDictionary <string, int> > racesResults =
                new Dictionary <Type, IDictionary <string, int> >();
            IDictionary <String, int> dict = null;

            int i = 0;

            while (i++ < 1000)
            {
                Game = builder.Build();
                for (var j = 0; j < Game.Players.Count; j++)
                {
                    var name = Game.Players[j].Name;
                    var race = Game.Players[j].Race;
                    if (racesResults.ContainsKey(race.GetType()))
                    {
                        dict = racesResults[race.GetType()];
                        if (dict.ContainsKey(name))
                        {
                            dict[name]++;
                        }
                        else
                        {
                            dict[name] = 1;
                        }
                    }
                    else
                    {
                        dict = new Dictionary <String, int>();
                        dict.Add(name, 1);
                        racesResults[race.GetType()] = dict;
                    }
                }
            }

            var normalDistribMean = 1.0 / racesResults.Keys.Count;

            foreach (var type in racesResults.Keys)
            {
                foreach (var name in racesResults[type].Keys)
                {
                    var percentage = racesResults[type][name] / (double)racesResults[type].Values.Sum();
                    Assert.IsTrue(normalDistribMean - 0.1 < percentage && percentage < normalDistribMean + 0.1);
                }
            }
        }
コード例 #13
0
        public FiveOneTwoGameCreator(int _gameSize)
        {
            if (_gameSize <= 3)
            {
                throw new ArgumentException(nameof(_gameSize) + " should be more or equal then 3 ");
            }

            gameSize = _gameSize;

            gameBuilder  = new FiveOneTwoGameBuilder();
            fieldBuilder = new FiveOneTwoFieldBuilder(gameSize);
        }
コード例 #14
0
ファイル: GameWindow.xaml.cs プロジェクト: Aceltis/ProjetPoo
        public GameWindow(IGameBuilder builder)
        {
            InitializeComponent();
            game = builder.build();
            createPVM();
            createGVM();

            initializeDataContext();
            drawMap();
            beginTurn();

            //Center the screen when the window is loaded
            this.Loaded+=new RoutedEventHandler(GameWindow_Loaded);
        }
コード例 #15
0
        Compilation([NotNull] Context ctx, [NotNull] IGameBuilder game, bool wantDebugInfo)
        {
            Context       = ctx;
            Game          = game;
            WantDebugInfo = wantDebugInfo;

            var equalizer = new AtomNameEqualityComparer(ctx.IgnoreCase);

            Globals     = new Dictionary <ZilAtom, IGlobalBuilder>(equalizer);
            Constants   = new Dictionary <ZilAtom, IOperand>(equalizer);
            Routines    = new Dictionary <ZilAtom, IRoutineBuilder>(equalizer);
            Objects     = new Dictionary <ZilAtom, IObjectBuilder>(equalizer);
            Properties  = new Dictionary <ZilAtom, IPropertyBuilder>(equalizer);
            Flags       = new Dictionary <ZilAtom, IFlagBuilder>(equalizer);
            SoftGlobals = new Dictionary <ZilAtom, SoftGlobal>(equalizer);
        }
コード例 #16
0
        public void SetUp()
        {
            _gameBuilder        = MockRepository.GenerateMock <IGameBuilder>();
            _gameStateProcessor = MockRepository.GenerateMock <IGameStateProcessor>();
            _inputManager       = MockRepository.GenerateMock <IInputManager>();
            _displayManager     = MockRepository.GenerateMock <IDisplayManager>();
            _testGameState      = MockRepository.GenerateStub <IGameState>();

            _gameBuilder.Stub(x => x.Build(
                                  Arg <int> .Is.Anything,
                                  Arg <int> .Is.Anything,
                                  Arg <int> .Is.Anything,
                                  Arg <int> .Is.Anything)).Return(_testGameState);

            _game = new MinefieldGame(_gameBuilder, _gameStateProcessor, _inputManager, _displayManager);
        }
コード例 #17
0
 /// <summary>
 /// Initializes a new instance of GameEngin object.
 /// </summary>
 /// <param name="builder">IGameBuilder object used for building core game objects.</param>
 /// <param name="board">GameBoard used in the game.</param>
 /// <param name="provider">Object which provides some useful game settings.</param>
 public GameEngine(IGameBuilder builder, GameBoard board, ISettingsProvider provider)
 {
     if (builder == null)
     {
         throw new ArgumentNullException(nameof(builder));
     }
     if (board == null)
     {
         throw new ArgumentNullException(nameof(board));
     }
     if (provider == null)
     {
         throw new ArgumentNullException(nameof(provider));
     }
     _provider  = provider;
     _builder   = builder;
     _gameBoard = board;
 }
コード例 #18
0
        public CompositionRoot(IDomainEventChannelFactory domainEventChannelFactory,
                               IGameBuilder gameBuilder,
                               IUICommandChannelFactory commandChannelFactory,
                               IGameViewFactory gameViewFactory)
        {
            // Domain
            this.domainEventChannel = domainEventChannelFactory.Create();
            this.game = gameBuilder.Create(this.domainEventChannel);

            // View
            this.uiCommandChannel = commandChannelFactory.Create();
            this.gameView         = gameViewFactory.Create(this.uiCommandChannel);

            // Handlers
            this.fromUICommandsToDomainHandler =
                new FromUICommandsToDomainHandler(this.uiCommandChannel, this.game);

            this.fromDomainEventsToViewHandler =
                new FromDomainEventsToViewHandler(this.domainEventChannel, this.gameView);
        }
コード例 #19
0
 /// <summary>
 /// Initializes a new instance of GameViewModel object.
 /// </summary>
 /// <param name="builder">An object that builds core game objects.</param>
 /// <param name="viewModelChanger">An object that changes views in the application.</param>
 /// <param name="accessor">An object that have access to control keys.</param>
 /// <param name="provider">An object that provides some configuration settings used in the game.</param>
 public GameViewModel(IGameBuilder builder, IViewModelChanger viewModelChanger, IHaveControlKeys accessor, ISettingsProvider provider) : base("Game")
 {
     if (builder == null)
     {
         throw new ArgumentNullException(nameof(builder));
     }
     _builder = builder;
     if (accessor == null)
     {
         throw new ArgumentNullException(nameof(accessor));
     }
     _accessor = accessor;
     if (viewModelChanger == null)
     {
         throw new ArgumentNullException(nameof(viewModelChanger));
     }
     _viewModelChanger = viewModelChanger;
     if (provider == null)
     {
         throw new ArgumentNullException(nameof(provider));
     }
     _provider = provider;
 }
コード例 #20
0
        /// <summary>
        /// Initializes a new instance of MainWindowViewModel.
        /// </summary>
        /// <param name="builder">An object that is responsible for building core game objects.</param>
        /// <param name="highscores">The list of the highscores in the game.</param>
        /// <param name="gameSerializer">An object that is responsible for saving and loading GameState.</param>
        /// <param name="validator">An object that validates control keys used in the game.</param>
        /// <param name="provider">An object that provides some configuration settings used in the game.</param>
        public MainWindowViewModel(IGameBuilder builder, HighscoreList highscores, IGameSerializer gameSerializer,
                                   IKeysValidator validator, ISettingsProvider provider) : base("Main")
        {
            if (provider == null)
            {
                throw new ArgumentNullException(nameof(provider));
            }
            _provider = provider;
            var vm = new List <ViewModelBase>
            {
                new StartMenuViewModel(this, gameSerializer),
                new OptionsViewModel(this, validator),
                new HighscoresViewModel(highscores),
                new GameViewModel(builder, this, this, provider),
                new EndGameViewModel(highscores),
                new PauseViewModel(this, gameSerializer)
            };

            foreach (var result in vm.OfType <CloseableViewModel>())
            {
                result.RequestClose += (sender, args) => OnCloseView((sender as ViewModelBase)?.Name);
            }
            ViewModels = vm;
        }
コード例 #21
0
ファイル: GameServices.cs プロジェクト: JimmyLahaie/codenames
 public GameServices(IGameBuilder gameBuilder, IGameRepository gameRepository)
 {
     _gameBuilder    = gameBuilder;
     _gameRepository = gameRepository;
 }
コード例 #22
0
 public GameBuilder(IGameBuilder gameBuilder)
 {
     _Builder = gameBuilder;
 }
コード例 #23
0
 public Student(IGameBuilder gameBuilder, IIdentifier studentIdentifier)
 {
     StudentIdentifier = studentIdentifier;
     MyYearBook        = gameBuilder.CreateYearBook(this);
     YearBookRecieved  = MyYearBook;
 }
コード例 #24
0
        public static void Compile([NotNull] Context ctx, [NotNull] IGameBuilder gb)
        {
            var compilation = new Compilation(ctx, gb, gb.DebugFile != null && ctx.WantDebugInfo);

            compilation.Compile();
        }
コード例 #25
0
ファイル: Startup.cs プロジェクト: Hofmanix/Command-Engine
 public void ConfigureCommands(IGameBuilder gameBuilder)
 {
     gameBuilder.AddHelp();
 }
コード例 #26
0
 public static void AddHelp(this IGameBuilder gameBuilder)
 {
     gameBuilder.AddCommand<HelpCommand>();
 }
コード例 #27
0
 public void Register(IGameBuilder builder)
 {
     builder.SetComponent <IInputManager>(new InputManager());
     builder.SetComponent <IOutputManager>(new OutputManager());
     builder.SetComponent <IDrawLoopExecutor>(new DrawLoopExecutor());
 }