コード例 #1
0
ファイル: Match.cs プロジェクト: jayhouse-github/RPS-Game
 public Match(int numberOfRounds, IPlayer p1, IPlayer p2, IGameResolver gameResolver)
 {
     _roundsLeft   = numberOfRounds;
     _player1      = p1;
     _player2      = p2;
     _gameResolver = gameResolver;
 }
コード例 #2
0
        private SemaphoreHost(IGameRules gameRules, IGameResolver gameResolver,
            IEnumerable<IParserPlayer> playersIncome, ILogger logger)
        {
            Logger = logger;
            resolver = gameResolver;

            // init players
            this.players = playersIncome.ToConcurrentQueue(gameRules, gameResolver, mi);

            // devise a game finish condition
            ctSrc = new CancellationTokenSource(gameResolver.MaxMilliseconds);
            ctSrc.Token.Register(CancellationRoutine);

            sem = new SemaphoreSlim(0, 1);
        }
コード例 #3
0
        public static ConcurrentQueue <IGuessGamePlayer> ToConcurrentQueue(
            this IEnumerable <IParserPlayer> playersIncome, IGameRules gameRules,
            IGameResolver gameResolver, IMaintenanceInfo mi)
        {
            var players = new List <Player>(playersIncome.Count());

            players.AddRange(playersIncome.Select(p =>
                                                  Player.NewPlayer(p, gameRules)));

            var chalg     = new CheatPippingGuessHistory(mi);
            var chPlayers = players.InitCheaters(chalg);

            var thisplayers = new ConcurrentQueue <IGuessGamePlayer>();

            foreach (var p in chPlayers)
            {
                thisplayers.Enqueue(p);
            }

            return(thisplayers);
        }
コード例 #4
0
 public RockPaperScissorsGameService(IComputerMoveGenerator computerMoveGenerator, IGameResolver gameResolver)
 {
     _computerMoveGenerator = computerMoveGenerator;
     _gameResolver = gameResolver;
 }
コード例 #5
0
 public static IMatch GetMatchClass(int numberOfRounds, IPlayer p1, IPlayer p2, IGameResolver gameResolver)
 {
     return(new Match(numberOfRounds, p1, p2, gameResolver));
 }
コード例 #6
0
 public static IGameAIHost GetGameHost(IGameRules gameRules, IGameResolver gameResolver,
     IEnumerable<IParserPlayer> playersIncome, ILogger logger)
 {
     return new SemaphoreHost(gameRules, gameResolver, playersIncome, logger);
 }
コード例 #7
0
 public Ranker(IDriveResolver driveResolver, IGameResolver gameResolver, ITeamResolver teamResolver)
 {
     this.driveResolver = driveResolver;
     this.gameResolver  = gameResolver;
     this.teamResolver  = teamResolver;
 }