public GameBL() { server = ServerBL.Instance; server.gameHubProxy.On("StartGame", (string roomId, Board board) => OnStartGame?.Invoke(roomId, board)); server.gameHubProxy.On("GetPlayerColor", (string roomId, CheckerColor color) => OnGetPlayerColor?.Invoke(roomId, color)); server.gameHubProxy.On("GetGameInvitation", (string room, string sender) => OnGameInvitation?.Invoke(room, sender)); server.gameHubProxy.On("DenyGame", (string username) => OnDenyInitation?.Invoke(username)); server.gameHubProxy.On("CurrentTurn", (string roomId, string username) => OnCurrentTurn?.Invoke(roomId, username)); server.gameHubProxy.On("GetUserName", (string userName) => OnGetPlayerName?.Invoke(userName)); server.gameHubProxy.On("UpdateBoard", (string roomId, Board board) => OnBoardUpdate?.Invoke(roomId, board)); server.gameHubProxy.On("DiceResult", (string room, int[] dice) => OnDiceResult?.Invoke(room, dice)); server.gameHubProxy.On("ChangeTurnStatus", (string roomId, TurnStatus turnStatus) => OnTurnStatusChange?.Invoke(roomId, turnStatus)); server.gameHubProxy.On("GameOver", (string roomid, string username) => OnGameOver?.Invoke(roomid, username)); server.gameHubProxy.On("GameClosed", (string room, string sender) => OnGameClosed?.Invoke(room, sender)); }
public void UpdateBoardWithObservations(CvModel[] Observations) { lock (mutex) { Transformer.GetBoardState(Observations); LastDeterminedBoardModels[CurrentDeterminedBoardModelIndex++] = Transformer.GetBoardState(Observations); if (CurrentDeterminedBoardModelIndex > ConsistencyBuffer - 1) { BufferFull = true; CurrentDeterminedBoardModelIndex = 0; } if (CurrentDeterminedBoardModelIndex % ConsistencyUpdatesPerCheck == 0 && BufferFull) { // Check for most agreed consistent data var dict = new Dictionary <BoardModel, int>(); foreach (var value in LastDeterminedBoardModels) { if (dict.ContainsKey(value)) { dict[value]++; } else { dict[value] = 1; } } KeyValuePair <BoardModel, int> MostOccuredModel = new KeyValuePair <BoardModel, int>(new BoardModel(), 0); foreach (var pair in dict) { if (pair.Key.CardsOnBoard() >= MostOccuredModel.Key.CardsOnBoard()) { if (pair.Value > MostOccuredModel.Value && pair.Value > MinConsistencyRequired) { MostOccuredModel = pair; } } } Board = MostOccuredModel.Key; OnBoardUpdate?.Invoke(Board); } } }
public void receiveBoardData(string boardJson) { Debug.Log("board data received"); boardState = manager.GetBoardFromJson(boardJson); OnBoardUpdate.Invoke(); }