Ejemplo n.º 1
0
        public void SendPlayerId_None_ClientReceivedPlayerId(IServerMessageTransceiver server, IClientMessageTransceiver client)
        {
            const int TestPlayerId = 0;

            Task sendPlayerIdTask = null;

            server.ReceivedJoinRequest += (sender, args) =>
            {
                sendPlayerIdTask = server.SendPlayerIdAsync(args.ConnectionId, TestPlayerId);
            };

            int playerId = -1;

            client.ReceivedPlayerId += (sender, args) =>
            {
                playerId = args.PlayerId;
            };

            var sendJoinRequestTask = client.SendJoinRequestAsync();

            sendJoinRequestTask.Wait();
            sendPlayerIdTask.Wait();

            Assert.Equal(TestPlayerId, playerId);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// コンストラクタ
        /// </summary>
        public DaifugoDealer(Configuration config, IServerMessageTransceiver messageTransceiver)
        {
            this.messageTransceiver = messageTransceiver;

            InitializeGame(config.playerCount, config.localRules);

            this.messageTransceiver.ReceivedJoinRequest += (sender, args) =>
            {
                var playerId     = LetPlayerJoin();
                var connectionId = args.ConnectionId;
                if (playerId != -1)
                {
                    playerIdToConnectionIdMap.Add(playerId, connectionId);
                }
                var task = messageTransceiver.SendPlayerIdAsync(connectionId, playerId);
                task.RunSynchronously();
            };

            this.messageTransceiver.ReceivedCards += (sender, args) =>
            {
                ReceivedCard(args.PlayerId, args.Cards);
            };
        }