public async Task StartGame(StartGameParams @params) { try { var result = _gameTableService.StartGame(Context.User.GetUserId()); await NotifyGameStarted(result); await Clients.Caller.ReceiveGameStartResult(new ReceiveGameStartResultParams() { Succeeded = true, MoverId = result.MoverId, RequestId = @params.RequestId, PlayerCardsInfo = result.PlayerCards.Select(pc => new PlayerCardsInfoDto() { Cards = Context.User.GetUserId() == pc.PlayerId ? pc.Cards : null, CardsCount = pc.CardsCount, PlayerId = pc.PlayerId }).ToList() }); } catch (Exception ex) { _logger.LogError(ex, $"Ошибка старта игры. Игрок с Id = {Context.User.GetUserId()}"); await Clients.Caller.ReceiveGameStartResult(new ReceiveGameStartResultParams() { Succeeded = false, RequestId = @params.RequestId }); } }
public Promise <ReceiveGameStartResultParams> StartGame(StartGameParams @params) { if (_isDisposed) { throw new ObjectDisposedException("Ресурсы объекта были освобождены"); } if (_hubConnection == null) { throw new Exception("Подключение еще не было создано"); } if (_hubConnection.State != HubConnectionState.Connected) { throw new Exception($"Подключение еще не установлено. Статус - {_hubConnection.State}"); } var promise = new Promise <ReceiveGameStartResultParams>(@params.RequestId, () => { _hubConnection.InvokeAsync(nameof(IMainHubApi.StartGame), @params); }); ReceivedGameStartResult += promise.OnCopleted; return(promise); }
public GameParams StartGame(StartGameParams inParams) { var randomStartGame = new GameParams(); randomStartGame = gameOfLifeHelper.MakeRandomBoardgame(inParams, randomStartGame); var nextTick = new GameParams(); nextTick.GameRows = gameOfLifeHelper.GameTick(inParams.Size, randomStartGame.GameRows); nextTick.Size = inParams.Size; return(nextTick); }
public GameParams MakeRandomBoardgame(StartGameParams inParams, GameParams gameStartParams) { Random randNum = new Random(); for (int r = 0; r < inParams.Size; r++) { var row = new int[inParams.Size]; for (int c = 0; c < inParams.Size; c++) { row[c] = randNum.Next(0, 2); } gameStartParams.GameRows.Add(row); } return(gameStartParams); }