Ejemplo n.º 1
0
        public GameConnection JoinGame(GameService gameService, string nickname, int gameSize)
        {
            GameConfiguration config     = GameConfiguration.FromNumberOfPlayers(gameSize);
            GameConnection    connection = null;

            while (connection == null)
            {
                HostedGame game = games.GetOrAdd(config, c => new HostedGame(c));

                if (game.Started)
                {
                    games.TryUpdate(config, new HostedGame(config), game);
                }
                else
                {
                    connection = game.TryAddPlayer(gameService, nickname);
                }
            }

            return(connection);
        }