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)); }