<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      使用SuperSocket開發聯網斗地主(二):發牌

      實現思路:

      將整幅牌數據和發牌數據都在服務端完成,客戶端只存儲自己的牌和底牌

      一、服務端:

      抽出一個牌類:

      public class DouDiZhuGameCard
      {
           public string CardColor { get; set; }
           public string CardName { get; set; }
           public int CardValue { get; set; }
      }

      分別表示花色,名稱和值,值用來比較大小,然后把54張牌初始化進去。繼續打亂這54張牌的順序:

      Random random = new Random();
      var cards = DouDiZhuGameConfig.DoDiZhuCards;
      for (int i = 0; i < cards.Count; i++)
      {
           DouDiZhuGameCard temp;
           int j = random.Next(0, cards.Count - 1);
           temp = cards[j];
           cards[j] = cards[i];
           cards[i] = temp;
      }

      然后分發給3個玩家:

      int playerIndex = 1;
      foreach (var item in DouDiZhuGameConfig.UserList)
      {
           item.Value.MyCards = cards.Skip((playerIndex-1)*17).Take(17).ToList();
           item.Value.MyCards.Sort((x, y) => x.CardValue.CompareTo(y.CardValue));
      
          item.Value.CommonCards= cards.Skip(51).Take(3).ToList();
      
          for (int i = 0; i < DouDiZhuGameConfig.MaxCard; i++)
           {
               item.Value.OtherPlayerCards.Add(new DouDiZhuGameCard { CardColor="",CardName="",CardValue=0});
           }
      
          response.Add(item.Key,item.Value);
           playerIndex++;
      }

      分給自己的是有數據的,用來在客戶端顯示,分給另外兩家的是空數據(當然可以在客戶端實現),另外把底牌也初始化,每個客戶端都能看到。

      然后根據scoketsession分發下去:

      var result = GameManager.SendCardToPlayer();
      foreach (var playerInfo in result)
      {
           var play_session = webSocketServer.GetSessionByID(playerInfo.Key);
          
           ResponseModel<DouDiZhuUserInfoModel> res_sendCard = new ResponseModel<DouDiZhuUserInfoModel>();
           res_sendCard.Action = "sendcard";
           res_sendCard.Data = playerInfo.Value;
      
          if(session.SessionID==playerInfo.Key)//是我
           {
               res_sendCard.Data.MyCards = playerInfo.Value.MyCards;
               res_sendCard.Data.OtherPlayerCards = playerInfo.Value.OtherPlayerCards;
           }
           this.SendMessage(play_session, JsonConvert.SerializeObject(res_sendCard));
      
      }

       

      二、客戶端:

      在收到服務端通知的“startgame”之后顯示每個玩家的牌:

      player1=userData.OtherPlayerCards;
      
      player2=userData.OtherPlayerCards;
      
      player_me=userData.MyCards;
      
      diPai=userData.CommonCards;

      然后按照位置顯示出來即可。

      最終效果如圖:

      image

      image

      image

      image

      代碼下載

      posted @ 2022-01-01 17:26  石曼迪  Views(214)  Comments(0)    收藏  舉報
      瓴域建設-環保事業中心
      主站蜘蛛池模板: 亚洲国产中文字幕精品| 后入内射无码人妻一区| 少妇午夜啪爽嗷嗷叫视频| 日本黄色三级一区二区三区| 精品人妻伦九区久久69| 国产成人亚洲欧美二区综合| 一区二区三区人妻无码| 男人的天堂av社区在线| 国产一区二区不卡91| 久久a级片| 影视先锋av资源噜噜| 人妻一区二区三区人妻黄色 | 在线天堂中文新版www| 欧美福利电影A在线播放| 国产亚洲另类无码专区| 亚洲免费人成网站在线观看| 四虎在线播放亚洲成人| 久久av高潮av喷水av无码| 午夜福利国产精品视频| 国产AV福利第一精品| 熟女少妇精品一区二区| 亚洲伊人久久精品影院| 日本妇人成熟免费| 亚洲精品一区二区二三区| 综合偷自拍亚洲乱中文字幕| 女人被狂躁c到高潮喷水一区二区 女高中生自慰污污网站 | 乱色欧美激惰| 亚洲色www成人永久网址| 精品国产一区av天美传媒| 国产乱码精品一区二三区| 亚洲中文字幕日韩精品| 人妻在线无码一区二区三区| 亚洲综合伊人久久大杳蕉| 在线视频一区二区三区色| 久久日产一线二线三线| 亚洲最大的成人网站| 中文字幕av日韩有码| 全黄h全肉边做边吃奶视频 | 国产午夜精品福利免费看| 樱花草在线社区www| 2020精品自拍视频曝光|