Пример #1
0
        /// <summary>
        /// 检查玩家手里是否存在指定牌
        /// </summary>
        /// <param name="playerId_">玩家Id</param>
        /// <param name="card_">牌</param>
        /// <returns></returns>
        private ABCard CheckCardExist(int playerId_, ABCard card_)
        {
            Seat   seat = GetSeatByPlayerId(playerId_);
            ABCard card = null;

            if (seat.GetPoker.Name == card_.Name && seat.GetPoker.CardColor == card_.CardColor)
            {
                card = seat.GetPoker;
            }
            return(card);
        }
Пример #2
0
        public void PlayerPlayOutOnePoker(int playerId)
        {
            Seat   meSeat                = GetSeatByPlayerId(playerId);
            int    opponentId            = GetOpponentId(playerId);
            Seat   opponentSeat          = GetSeatByPlayerId(opponentId);
            var    opponentPayOut        = opponentSeat.PlayOutPokers;
            var    opponentCompareResult = opponentSeat.CompareResult;
            ABCard card = null;

            if (null == meSeat.GetPoker)
            {
                return;
            }
            card = meSeat.GetPoker;
            var   meCompareResult = meSeat.CompareResult;
            ISeat winPlayer       = null;

            if (card != null)
            {
                lock (Locker)
                {
                    meSeat.GetPoker      = null;
                    meSeat.PlayOutPokers = card;
                    if (opponentPayOut != null)
                    {
                        if (meSeat.PlayOutPokers.ComparedValue > opponentSeat.PlayOutPokers.ComparedValue)
                        {
                            winPlayer = meSeat;
                        }
                        else
                        {
                            winPlayer = opponentSeat;
                        }
                        meSeat.PlayOutPokers       = null;
                        meSeat.CompareResult       = card;
                        opponentSeat.CompareResult = opponentSeat.PlayOutPokers;
                        opponentSeat.PlayOutPokers = null;
                        winPlayer.IPlayer.DecutMoney(-ChipInAmount);
                        foreach (var item in InningeGame.NotEmptySeats())//通知全部客户端刷新
                        {
                            NotifySinglePlayer(WebscoketSendObjs.FreshGameFace(item.IPlayer.Id), item.IPlayer.Id);
                        }
                    }
                    NotifySinglePlayer(WebscoketSendObjs.FreshGameFace(playerId), playerId);
                    return;
                }
            }
            return;
        }
Пример #3
0
        /// <summary>
        /// 检查玩家手里是否存在指定牌
        /// </summary>
        /// <param name="playerId_">玩家Id</param>
        /// <param name="card_">牌</param>
        /// <returns></returns>
        private ABCard CheckCardExist(int playerId_, ABCard card_)
        {
            var    seat = InningeGame.GetSeatByPlayerId(playerId_);
            ABCard card = null;

            foreach (ABCard item in seat.GameDateObj["getPokers"])
            {
                if (item.Name == card_.Name && item.CardColor == card_.CardColor)
                {
                    card = item;
                    break;
                }
            }
            return(card);
        }