//玩家出牌 出完牌后调用 public static void AIPlayCardDispose(this FiveStarPlayer fiveStarPlayer) { if (!fiveStarPlayer.IsAI) { return; } if (!fiveStarPlayer.IsLiangDao && fiveStarPlayer.MoCardCount == LiangDaoMoCount) { //替换手牌 List <int> newHands = fiveStarPlayer.FiveStarRoom.ResidueCards.GetRange(fiveStarPlayer.FiveStarRoom.ResidueCards.Count - 1 - fiveStarPlayer.Hands.Count, fiveStarPlayer.Hands.Count); //获取隐藏在 剩余牌尾部必赢的牌 int wincard = fiveStarPlayer.FiveStarRoom.ResidueCards[fiveStarPlayer.FiveStarRoom.ResidueCards.Count - 1]; //获取必赢牌的 最后摸的牌 fiveStarPlayer.FiveStarRoom.ResidueCards.Remove(wincard); //删除必赢摸的牌 for (int i = 0; i < newHands.Count; i++) { fiveStarPlayer.FiveStarRoom.ResidueCards.Remove(newHands[i]); //删除必赢的牌 } fiveStarPlayer.FiveStarRoom.ResidueCards.AddRange(fiveStarPlayer.Hands); //把现有的手牌添加到剩余牌数组里面 fiveStarPlayer.FiveStarRoom.ResidueCards.Add(wincard); //添加必赢摸的牌 到最后 fiveStarPlayer.Hands.Clear(); //清除当前手牌 fiveStarPlayer.Hands.Add(newHands); //添加必赢的牌 fiveStarPlayer.LiangDao(); //正常情况下决定可以亮倒 } }