Exemplo n.º 1
0
    /// <summary>
    /// 获取所有牌型测试
    /// </summary>
    private void AllDect()
    {
        List <Deck> decks = DouDiZhuHelper.GetAllDeck(InitPoker());

        for (int i = 0; i < decks.Count; i++)
        {
            //if (decks[i].type == DeckType.AA)
            //{
            //    Debug.Log("type:" + decks[i].type);
            //    for (int j = 0; j < decks[i].pokers.Count; j++)
            //    {
            //        Debug.Log(decks[i].pokers[j].ToString());
            //    }
            //    Debug.Log("==================================");
            //}
            if (decks[i].type == DeckType.AABBCC)
            {
                Debug.Log("type:" + decks[i].type);
                for (int j = 0; j < decks[i].pokers.Count; j++)
                {
                    Debug.Log(decks[i].pokers[j].ToString());
                }
                Debug.Log("main:" + decks[i].mainPoker.ToString());
                Debug.Log("==================================");
            }
            //Debug.Log("type:" + decks[i].type);
        }
    }
Exemplo n.º 2
0
        /// <summary>
        /// 初始化房间
        /// </summary>
        /// <param name="room"></param>
        public void InitRoom(RoomEntity room)
        {
            CurrentRoom = room;
            CalculateSeatIndex();

            bool mustPlay = false;
            bool canPlay  = true;
            Deck prevDeck = GetPreviourDeck();

            if (prevDeck == null)
            {
                mustPlay = true;
            }
            else
            {
                List <Deck> Tip = DouDiZhuHelper.GetStrongerDeck(prevDeck, CurrentRoom.PlayerSeat.pokerList);

                if (Tip == null || Tip.Count == 0)
                {
                    canPlay = false;
                }
            }



            TransferData data = new TransferData();

            data.SetValue("Room", CurrentRoom);
            data.SetValue("MustPlay", mustPlay);
            data.SetValue("CanPlay", canPlay);
            SendNotification(ON_INIT, data);

            SendRoomInfoChangeNotify();
        }
Exemplo n.º 3
0
    private void GetStrongDeck()
    {
        List <Poker> lstPrePoker = new List <Poker>();

        lstPrePoker.Add(new Poker(0, 4));
        lstPrePoker.Add(new Poker(0, 4));
        lstPrePoker.Add(new Poker(0, 5));
        lstPrePoker.Add(new Poker(0, 5));
        lstPrePoker.Add(new Poker(0, 6));
        lstPrePoker.Add(new Poker(0, 6));
        lstPrePoker.Add(new Poker(0, 7));
        lstPrePoker.Add(new Poker(0, 7));

        Deck preDeck = new Deck(DeckType.AABBCC, lstPrePoker, new Poker(0, 7));

        List <Poker> lstHandPoker = new List <Poker>();

        lstHandPoker.Add(new Poker(0, 7));
        lstHandPoker.Add(new Poker(0, 7));
        lstHandPoker.Add(new Poker(0, 8));
        lstHandPoker.Add(new Poker(0, 8));
        lstHandPoker.Add(new Poker(0, 9));
        lstHandPoker.Add(new Poker(0, 9));
        //lstHandPoker.Add(new Poker(0, 10));
        //lstHandPoker.Add(new Poker(0, 10));
        List <Deck> lstDeck = DouDiZhuHelper.GetStrongerDeck(preDeck, lstHandPoker);

        Debug.LogWarning(lstDeck.Count);
    }
Exemplo n.º 4
0
    /// <summary>
    /// 最长的顺子
    /// </summary>
    private void LonestABCDE()
    {
        Deck deck = DouDiZhuHelper.GetLongestABCED(InitPoker());

        for (int i = 0; i < deck.pokers.Count; i++)
        {
            Debug.Log(deck.pokers[i].ToString());
        }
    }
Exemplo n.º 5
0
        /// <summary>
        /// 询问出牌
        /// </summary>
        /// <param name="playerId"></param>
        public void AskPlayPoker(int playerId, int unixTime)
        {
            SeatEntity seat = GetSeatByPlayerId(playerId);

            if (seat == null)
            {
                return;
            }
            seat.status        = SeatEntity.SeatStatus.PlayPoker;
            seat.PreviourPoker = null;
            seat.unixtime      = unixTime;

            bool mustPlay = false;
            bool canPlay  = true;
            Deck prevDeck = GetPreviourDeck();

            if (prevDeck == null)
            {
                mustPlay = true;
            }
            else
            {
                List <Deck> Tip = DouDiZhuHelper.GetStrongerDeck(prevDeck, CurrentRoom.PlayerSeat.pokerList);

                if (Tip == null || Tip.Count == 0)
                {
                    canPlay = false;
                }
            }
            bool isDelaySendPass = false;

            if (GetPreviourDeck() != null)
            {
                if (GetPreviourDeck().type == DeckType.SS || (CurrentRoom.PlayerSeat.pokerList.Count == 1 && !canPlay))
                {
                    seat.unixtime   = 2;
                    isDelaySendPass = true;
                }
            }


            TransferData data = new TransferData();

            data.SetValue("SeatEntity", seat);
            data.SetValue("PreviourDeck", prevDeck);
            data.SetValue("MustPlay", mustPlay);
            data.SetValue("CanPlay", canPlay);
            data.SetValue("IsDelaySendPass", isDelaySendPass);
            SendNotification(ON_ASK_PLAY_POKER, data);
        }
Exemplo n.º 6
0
    /// <summary>
    /// 牌型测试
    /// </summary>
    private void DeckTest()
    {
        Deck deck = DouDiZhuHelper.Check(InitPoker());

        if (deck == null)
        {
            Debug.Log("空");
        }
        else
        {
            Debug.Log(deck.type);
            for (int i = 0; i < deck.pokers.Count; i++)
            {
                Debug.Log(deck.pokers[i].ToString());
            }
            Debug.Log(string.Format("main:{0}", deck.mainPoker.ToString()));
        }
    }
Exemplo n.º 7
0
    /// <summary>
    /// 牌型测试
    /// </summary>
    private void DeckTest()
    {
        List <Poker> pokers = new List <Poker>();

        pokers.Add(new Poker(1, 3));
        pokers.Add(new Poker(2, 3));
        pokers.Add(new Poker(3, 3));
        pokers.Add(new Poker(1, 4));
        pokers.Add(new Poker(2, 4));
        pokers.Add(new Poker(3, 4));
        pokers.Add(new Poker(1, 6));
        //pokers.Add(new Poker(2, 6));
        pokers.Add(new Poker(1, 7));
        //pokers.Add(new Poker(2, 7));
        Deck deck = DouDiZhuHelper.Check(pokers);

        Debug.Log(deck.type);
    }
Exemplo n.º 8
0
    /// <summary>
    /// 牌型测试
    /// </summary>
    private void DeckTest2()
    {
        List <Deck> lstDeck = DouDiZhuHelper.Check2(InitPoker());

        if (lstDeck.Count == 0)
        {
            Debug.Log("空");
        }
        else
        {
            for (int i = 0; i < lstDeck.Count; i++)
            {
                Debug.Log(lstDeck[i].type);
                for (int j = 0; j < lstDeck[i].pokers.Count; j++)
                {
                    Debug.Log(lstDeck[i].pokers[j].ToString());
                }
            }
        }
    }
Exemplo n.º 9
0
        /// <summary>
        /// 获取上一次出的牌组
        /// </summary>
        /// <returns></returns>
        public Deck GetPreviourDeckNew()
        {
            if (CurrentRoom.PlayerSeat == null)
            {
                return(null);
            }

            int          pos       = CurrentRoom.PlayerSeat.Pos;
            List <Poker> prevPoker = null;

            while (prevPoker == null)
            {
                SeatEntity prevSeat = GetPreviourSeat(pos);
                pos       = prevSeat.Pos;
                prevPoker = prevSeat.PreviourPoker;
                if (prevSeat == CurrentRoom.PlayerSeat)
                {
                    break;
                }
            }
            return(DouDiZhuHelper.Check(prevPoker));
        }
Exemplo n.º 10
0
    private void isBigerDeck()
    {
        List <Poker> lstPrePoker = new List <Poker>();

        lstPrePoker.Add(new Poker(0, 5));
        lstPrePoker.Add(new Poker(0, 5));
        lstPrePoker.Add(new Poker(0, 5));
        lstPrePoker.Add(new Poker(0, 6));
        lstPrePoker.Add(new Poker(0, 6));
        lstPrePoker.Add(new Poker(0, 6));
        lstPrePoker.Add(new Poker(0, 6));
        lstPrePoker.Add(new Poker(0, 7));

        Deck preDeck = DouDiZhuHelper.Check(lstPrePoker);

        List <Poker> lstHandPoker = new List <Poker>();

        lstHandPoker.Add(new Poker(0, 9));
        lstHandPoker.Add(new Poker(0, 9));
        lstHandPoker.Add(new Poker(0, 12));
        lstHandPoker.Add(new Poker(0, 12));
        lstHandPoker.Add(new Poker(0, 12));
        lstHandPoker.Add(new Poker(0, 13));
        lstHandPoker.Add(new Poker(0, 13));
        lstHandPoker.Add(new Poker(0, 13));

        Deck newDeck = DouDiZhuHelper.Check(lstHandPoker);

        if (preDeck <= newDeck)
        {
            Debug.LogWarning("大于等于");
        }
        else
        {
            Debug.LogWarning("小于");
        }
    }
Exemplo n.º 11
0
    private void OnGUI()
    {
        posY = 0;

        playerId   = GUI.TextField(new Rect(100, posY, 80, 30), playerId);
        gold       = GUI.TextField(new Rect(200, posY, 80, 30), gold);
        nickname   = GUI.TextField(new Rect(300, posY, 80, 30), nickname);
        pos        = GUI.TextField(new Rect(400, posY, 80, 30), pos);
        pokerCount = GUI.TextField(new Rect(500, posY, 80, 30), pokerCount);

        for (int i = 0; i < pokerCount.ToInt(); ++i)
        {
            if (i >= lstPoker.Count)
            {
                Poker poker = new Poker(0, 0, 0);
                lstPoker.Add(poker);
            }
            lstPoker[i].index = GUI.TextField(new Rect(600, posY + i * 30, 80, 30), lstPoker[i].index.ToString()).ToInt();
            lstPoker[i].color = GUI.TextField(new Rect(700, posY + i * 30, 80, 30), lstPoker[i].color.ToString()).ToInt();
            lstPoker[i].size  = GUI.TextField(new Rect(800, posY + i * 30, 80, 30), lstPoker[i].size.ToString()).ToInt();
        }
        for (int i = lstPoker.Count - 1; i >= pokerCount.ToInt(); --i)
        {
            lstPoker.RemoveAt(i);
        }

        if (GUI.Button(new Rect(1, posY, 80, 30), "创建房间"))
        {
            GameCtrl.Instance.CreateRoom(4);
        }

        posY += 30;

        if (GUI.Button(new Rect(1, posY, 80, 30), "进入房间"))
        {
            RoomProxy.Instance.EnterRoom(playerId.ToInt(), gold.ToInt(), string.Empty, 0, nickname, pos.ToInt());
        }

        posY += 30;

        if (GUI.Button(new Rect(1, posY, 80, 30), "离开房间"))
        {
            RoomProxy.Instance.ExitRoom(playerId.ToInt());
        }

        posY += 30;

        if (GUI.Button(new Rect(1, posY, 80, 30), "准备"))
        {
            RoomProxy.Instance.Ready(playerId.ToInt(), true);
        }

        posY += 30;

        if (GUI.Button(new Rect(1, posY, 80, 30), "取消准备"))
        {
            RoomProxy.Instance.Ready(playerId.ToInt(), false);
        }

        posY += 30;

        if (GUI.Button(new Rect(1, posY, 80, 30), "询问下注"))
        {
            new AskBetCommand(playerId.ToInt()).Execute();
        }

        posY += 30;

        if (GUI.Button(new Rect(1, posY, 80, 30), "下注"))
        {
            new BetCommand(playerId.ToInt(), gold.ToInt()).Execute();
        }

        posY += 30;

        if (GUI.Button(new Rect(1, posY, 80, 30), "发牌"))
        {
            //new BeginCommand(playerId.ToInt(), CopyPoker(lstPoker)).Execute();
        }

        posY += 30;

        //if (GUI.Button(new Rect(1, posY, 80, 30), "明牌"))
        //{
        //    RoomProxy.Instance.ShowPoker(playerId.ToInt(), CopyPoker(lstPoker));
        //}

        //posY += 30;

        if (GUI.Button(new Rect(1, posY, 80, 30), "询问出牌"))
        {
            //new AskPlayPokerCommand(playerId.ToInt()).Execute();
        }

        posY += 30;

        if (GUI.Button(new Rect(1, posY, 80, 30), "出牌"))
        {
            Deck deck = DouDiZhuHelper.Check(CopyPoker(lstPoker));
            new PlayPokerCommand(playerId.ToInt(), deck).Execute();
        }

        posY += 30;

        if (GUI.Button(new Rect(1, posY, 80, 30), "过"))
        {
            new PassCommand(playerId.ToInt()).Execute();
        }

        posY += 30;
    }