Exemple #1
0
        public GameCell Execute(int currentGameId, GameSideEnum computerGameSide, ISelectorStrategy selectorStrategy)
        {
            var cells = _gameCellService.GetAll(currentGameId).ToArray();

            GameCell gameCell = selectorStrategy.GetCell(cells, computerGameSide);

            return(gameCell);
        }
        private Models.MVC.Game.Game CurrentGame(TicTacToe.Models.MVC.Game.Player player)
        {
            var currentGame = _gameRepository.GetCurrentByPlayerId(player.Id);
            var game        = new TicTacToe.Models.MVC.Game.Game()
            {
                Id            = currentGame?.Id ?? 0,
                Player        = player,
                StartDateTime = player.Id > 0 ? currentGame?.StartDateTime : null,
                EndDateTime   = player.Id > 0 ? currentGame?.EndDateTime : null,
                GameCells     = currentGame?.Id > 0 ? _gameCellService.GetAll(currentGame.Id) : new List <GameCell>(),
                Level         = new Level()
                {
                    LevelEnum = LevelEnum.Easy
                },
                WinnerPlayer = currentGame?.Id > 0 && currentGame.WinnerPlayerId != null?_playerService.FindById((int)currentGame.WinnerPlayerId) : null
            };

            return(game);
        }
        public GameSideEnum?GetWinner(Game currentGame)
        {
            var cells      = _gameCellService.GetAll(currentGame.Id).ToArray();
            var cellGroups = CellGroupsHelper.ExecuteStructuredGroups(cells);

            var crossesWinnerGroup = cellGroups.FirstOrDefault(d => d.OccupiedGameCells.Count(s => s.GameSide == GameSideEnum.Crosses) == 3);

            if (crossesWinnerGroup != null)
            {
                return(GameSideEnum.Crosses);
            }
            var zerosWinnerGroup = cellGroups.FirstOrDefault(d => d.OccupiedGameCells.Count(s => s.GameSide == GameSideEnum.Zeros) == 3);

            if (zerosWinnerGroup != null)
            {
                return(GameSideEnum.Zeros);
            }

            return(null);
        }
 private IList <GameCell> CreateGameCellsList(int gameId)
 {
     return(_gameCellService.GetAll(gameId));
 }