示例#1
0
 public Variant960Controller(IUserRepository _userRepository, IPersistentLoginHandler _loginHandler, IRandomProvider _randomProvider, IGameRepository _gameRepository, IMoveCollectionTransformer _moveCollectionTransformer, IGameConstructor _gameConstructor) : base(_userRepository, _loginHandler)
 {
     randomProvider            = _randomProvider;
     gameRepository            = _gameRepository;
     moveCollectionTransformer = _moveCollectionTransformer;
     gameConstructor           = _gameConstructor;
 }
示例#2
0
 /// <summary>
 /// Attempts to construct a game.
 /// </summary>
 public bool TryConstruct(out IGameConstructor construct)
 {
     construct = null;
     if (!IsPlayable)
     {
         return(false);
     }
     construct = Construct();
     return(true);
 }
示例#3
0
        public PuzzleTrainingSession(string sessionId, IGameConstructor _gameConstructor)
        {
            SessionID     = sessionId;
            PastPuzzleIds = new List <int>();
            FENs          = new List <string>();
            Checks        = new List <string>();
            Moves         = new List <string>();

            gameConstructor = _gameConstructor;
        }
        public TimedTrainingSession(string sessionId, DateTime startedAt, DateTime endsAt, int?owner, string type, string variant, IGameConstructor _gameConstructor)
        {
            SessionID    = sessionId;
            StartedAt    = startedAt;
            EndsAt       = endsAt;
            RecordedInDb = false;
            Score        = new TimedTrainingScore(0, type, owner, DateTime.UtcNow, Variant);
            Variant      = variant;
            Type         = type;

            gameConstructor = _gameConstructor;
        }
 public SocketController(IUserRepository _userRepository, IPersistentLoginHandler _loginHandler, ILobbySocketHandlerRepository _lobbySocketHandlerRepository, ILobbySeekRepository _seekRepository, IGameRepository _gameRepository, IRandomProvider _randomProvider, IGameSocketHandlerRepository _gameSocketHandlerRepository, IGameRepoForSocketHandlers _gameRepoForSocketHandlers, IMoveCollectionTransformer _moveCollectionTransformer, IGameConstructor _gameConstructor)
     : base(_userRepository, _loginHandler)
 {
     lobbySocketHandlerRepository = _lobbySocketHandlerRepository;
     seekRepository = _seekRepository;
     gameRepository = _gameRepository;
     randomProvider = _randomProvider;
     gameSocketHandlerRepository = _gameSocketHandlerRepository;
     gameRepoForSocketHandlers   = _gameRepoForSocketHandlers;
     moveCollectionTransformer   = _moveCollectionTransformer;
     gameConstructor             = _gameConstructor;
 }
示例#6
0
 public LobbySocketHandler(WebSocket socket, GamePlayer _client, ILobbySocketHandlerRepository _handlerRepository, ILobbySeekRepository _seekRepository, IGameRepository _gameRepository, IRandomProvider _randomProvider, IUserRepository _userRepository, IGameConstructor _gameConstructor)
 {
     ws                = socket;
     client            = _client;
     handlerRepository = _handlerRepository;
     seekRepository    = _seekRepository;
     gameRepository    = _gameRepository;
     randomProvider    = _randomProvider;
     userRepository    = _userRepository;
     gameConstructor   = _gameConstructor;
     Disposed          = false;
 }
示例#7
0
 public GameSocketHandler(WebSocket socket, GamePlayer _client, IGameRepoForSocketHandlers _gameRepository, IGameSocketHandlerRepository _handlerRepository, IMoveCollectionTransformer _moveCollectionTransformer, IUserRepository _userRepository, IRandomProvider _randomProvider, IGameConstructor _gameConstructor, string _gameId)
 {
     ws                        = socket;
     client                    = _client;
     gameRepository            = _gameRepository;
     handlerRepository         = _handlerRepository;
     moveCollectionTransformer = _moveCollectionTransformer;
     userRepository            = _userRepository;
     randomProvider            = _randomProvider;
     gameId                    = _gameId;
     gameConstructor           = _gameConstructor;
     Disposed                  = false;
 }
示例#8
0
 public TimedTrainingController(IUserRepository _userRepository,
                                ITimedTrainingScoreRepository _timedTrainingRepository,
                                IPositionRepository _positionRepository,
                                ITimedTrainingSessionRepository _timedTrainingSessionRepository,
                                ITimedTrainingScoreRepository _timedTrainingScoreRepository,
                                IMoveCollectionTransformer _moveCollectionTransformer,
                                IPersistentLoginHandler _loginHandler,
                                IGameConstructor _gameConstructor)
     : base(_userRepository, _loginHandler)
 {
     timedTrainingRepository        = _timedTrainingRepository;
     positionRepository             = _positionRepository;
     timedTrainingSessionRepository = _timedTrainingSessionRepository;
     timedTrainingScoreRepository   = _timedTrainingScoreRepository;
     moveCollectionTransformer      = _moveCollectionTransformer;
     loginHandler    = _loginHandler;
     gameConstructor = _gameConstructor;
 }
示例#9
0
 public PuzzleController(IPuzzlesBeingEditedRepository _puzzlesBeingEdited,
                         IPuzzleRepository _puzzleRepository,
                         IUserRepository _userRepository,
                         IRatingUpdater _ratingUpdater,
                         IMoveCollectionTransformer _movecollectionTransformer,
                         IPuzzleTrainingSessionRepository _puzzleTrainingSessionRepository,
                         ICounterRepository _counterRepository,
                         IPersistentLoginHandler _loginHandler,
                         IGameConstructor _gameConstructor) : base(_userRepository, _loginHandler)
 {
     puzzlesBeingEdited              = _puzzlesBeingEdited;
     puzzleRepository                = _puzzleRepository;
     ratingUpdater                   = _ratingUpdater;
     moveCollectionTransformer       = _movecollectionTransformer;
     puzzleTrainingSessionRepository = _puzzleTrainingSessionRepository;
     counterRepository               = _counterRepository;
     gameConstructor                 = _gameConstructor;
 }
示例#10
0
 public GameRepoForSocketHandlers(IGameRepository _gameRepository, IGameConstructor _gameConstructor)
 {
     gameRepository  = _gameRepository;
     gameConstructor = _gameConstructor;
 }
示例#11
0
        public Game(string id, GamePlayer white, GamePlayer black, string shortVariant, string fullVariant, int nWhite, int nBlack, bool isSymmetrical, TimeControl tc, DateTime startedUtc, int rematchLevel, IGameConstructor gameConstructor)
        {
            ID               = id;
            White            = white;
            PositionWhite    = nWhite;
            Black            = black;
            PositionBlack    = nBlack;
            IsSymmetrical    = isSymmetrical;
            Result           = Results.ONGOING;
            Termination      = Terminations.UNTERMINATED;
            TimeControl      = tc;
            ShortVariantName = shortVariant;
            FullVariantName  = fullVariant;
            string fen;

            if (shortVariant == "Horde")
            {
                fen = ChessUtilities.FenForHorde960(nBlack);
            }
            else if (shortVariant == "RacingKings")
            {
                fen = ChessUtilities.FenForRacingKings1440Asymmetrical(nWhite, nBlack);
            }
            else
            {
                fen = ChessUtilities.FenForChess960Asymmetrical(nWhite, nBlack);
            }
            ChessGame         = gameConstructor.Construct(shortVariant, fen);
            InitialFEN        = LatestFEN = ChessGame.GetFen();
            PlayerChats       = new List <ChatMessage>();
            SpectatorChats    = new List <ChatMessage>();
            StartedUtc        = startedUtc;
            EndedUtc          = null;
            ClockWhite        = new Clock(tc);
            ClockBlack        = new Clock(tc);
            ClockTimes        = new List <double>();
            WhiteWantsRematch = false;
            BlackWantsRematch = false;
            WhiteWantsDraw    = false;
            BlackWantsDraw    = false;
            RematchLevel      = rematchLevel;
            UciMoves          = new List <string>();
        }