コード例 #1
0
 //检测能不能擦杠
 public static bool IsCanCaGang(this FiveStarPlayer fiveStarPlayer)
 {
     for (int i = 0; i < fiveStarPlayer.OperateInfos.Count; i++)
     {
         if (fiveStarPlayer.OperateInfos[i].OperateType == FiveStarOperateType.Peng)
         {
             if (fiveStarPlayer.Hands.Contains(fiveStarPlayer.OperateInfos[i].Card))
             {
                 //如果亮倒了 擦杠的牌 只能是刚才自己摸的牌
                 if (fiveStarPlayer.IsLiangDao)
                 {
                     if (fiveStarPlayer.MoEndHand == fiveStarPlayer.OperateInfos[i].Card)
                     {
                         fiveStarPlayer.AddCanGangCard(fiveStarPlayer.OperateInfos[i].Card, FiveStarOperateType.CaGang);
                         return(true);
                     }
                     else
                     {
                         return(false);
                     }
                 }
                 fiveStarPlayer.AddCanGangCard(fiveStarPlayer.OperateInfos[i].Card, FiveStarOperateType.CaGang);
                 return(true);
             }
         }
     }
     return(false);
 }
コード例 #2
0
 //检测能不能碰或者杠
 public static int IsCanPengAndGang(this FiveStarPlayer fiveStarPlayer, int card)
 {
     fiveStarPlayer.intData = 0;
     for (int i = 0; i < fiveStarPlayer.Hands.Count; i++)
     {
         if (fiveStarPlayer.Hands[i] == card)
         {
             fiveStarPlayer.intData++;
         }
     }
     if (fiveStarPlayer.intData == 2)
     {
         if (fiveStarPlayer.IsLiangDao)
         {
             return(FiveStarOperateType.None);
         }
         return(FiveStarOperateType.Peng);
     }
     else if (fiveStarPlayer.intData == 3)
     {
         if (fiveStarPlayer.IsLiangDao && !fiveStarPlayer.LiangDaoNoneCards.Contains(card))
         {
             return(FiveStarOperateType.None);
         }
         fiveStarPlayer.AddCanGangCard(card, FiveStarOperateType.MingGang);
         return(FiveStarOperateType.MingGang);
     }
     return(FiveStarOperateType.None);
 }
コード例 #3
0
 //添加可以暗杠的牌
 public static void AddCanAnGangCard(this FiveStarPlayer fiveStarPlayer, int card)
 {
     if (fiveStarPlayer.IsLiangDao)
     {
         if (!fiveStarPlayer.LiangDaoNoneCards.Contains(card) || fiveStarPlayer.MoEndHand != card)
         {
             return;//如果玩家 亮倒了  而且 亮倒无关牌中 没有这张牌 他就不能暗杠这张牌 而且 只能暗杠杠摸的那种牌
         }
     }
     fiveStarPlayer.AddCanGangCard(card, FiveStarOperateType.AnGang);
 }