public Match(int numberOfRounds, IPlayer p1, IPlayer p2, IGameResolver gameResolver) { _roundsLeft = numberOfRounds; _player1 = p1; _player2 = p2; _gameResolver = gameResolver; }
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); }
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); }
public RockPaperScissorsGameService(IComputerMoveGenerator computerMoveGenerator, IGameResolver gameResolver) { _computerMoveGenerator = computerMoveGenerator; _gameResolver = gameResolver; }
public static IMatch GetMatchClass(int numberOfRounds, IPlayer p1, IPlayer p2, IGameResolver gameResolver) { return(new Match(numberOfRounds, p1, p2, gameResolver)); }
public static IGameAIHost GetGameHost(IGameRules gameRules, IGameResolver gameResolver, IEnumerable<IParserPlayer> playersIncome, ILogger logger) { return new SemaphoreHost(gameRules, gameResolver, playersIncome, logger); }
public Ranker(IDriveResolver driveResolver, IGameResolver gameResolver, ITeamResolver teamResolver) { this.driveResolver = driveResolver; this.gameResolver = gameResolver; this.teamResolver = teamResolver; }