Esempio n. 1
0
    /// <summary>
    /// 显示的牌进行排序
    /// </summary>
    void sortPoker()
    {
        List <Card> cl = CardUtils.GetInstance().sortlist(cm.mList, CardManager.Instance.color);
        // print("原来大小:"+cl.Count);
        HashSet <Card> set = new HashSet <Card>(cl);

        // print("去除重复数据大小:" + set.Count);
        cm.mList.Clear();
        cm.mList = cl;
        int index = cm.mList.Count / 2;

        //计算牌的位置
        for (int x = 0; x < cm.mList.Count; x++)
        {
            float h = 0;
            if (x < index)
            {
                h = (index - x) * (-0.6F);
            }
            else if (x == index)
            {
                h = 0;
            }
            else if (x > index)
            {
                h = (x - index) * 0.6F;
            }

            // print("x:  " + x + "  h:" + h+"   ---index:"+index+"---name:"+cm.mList[x].name);
            //计算牌的位置
            pokerTrans.FindChild(cm.mList[x].name).transform.position = new Vector2(h, -4);

            pokerTrans.FindChild(cm.mList[x].name).GetComponent <SpriteRenderer>().sortingOrder = x + 1;
        }
    }
Esempio n. 2
0
 /// <summary>
 /// 准备按钮点击事件
 /// </summary>
 void readButtonOnClick()
 {
     CardManager.Instance.isShowRob = true;
     foreach (GameObject item in ok)
     {
         item.SetActive(false);
     }
     //获取牌
     plist = CardUtils.GetInstance().getPoker(2, 54, 1);
     //洗牌
     plist = CardUtils.GetInstance().Shuffle(plist);
     //标记开始发牌
     isSend = true;
 }
Esempio n. 3
0
    /// <summary>
    /// 巴十 发牌
    /// </summary>
    /// <param name="number"></param>
    void dealBs()
    {
        if (pnumber >= plist.Count - 8)
        {
            //对牌进行排序
            CardManager.Instance.fList = CardUtils.GetInstance().sortlist(CardManager.Instance.fList, CardManager.Instance.color);

            CardManager.Instance.sList = CardUtils.GetInstance().sortlist(CardManager.Instance.sList, CardManager.Instance.color);

            CardManager.Instance.tList = CardUtils.GetInstance().sortlist(CardManager.Instance.tList, CardManager.Instance.color);

            //添加底牌
            for (int i = plist.Count - 8; i < plist.Count; i++)
            {
                //print("值:" +list[i].value + "--花色:" + list[i].color+"---i="+i);
                CardManager.Instance.blist.Add(plist[i]);
            }

            isSend = false;
            //标记牌已经发完
            CardManager.Instance.isSend = true;
            return;
        }
        //自己的牌
        if (pnumber % 4 == 0)
        {
            addPoker(plist[pnumber]);
        }
        //第二个人的牌
        else if (pnumber % 4 == 1)
        {
            cm.fList.Add(plist[pnumber]);
            //把抢庄的牌加入集合
            if (plist[pnumber].value == 10 && (plist[pnumber].color == 1 || plist[pnumber].color == 3))
            {
                cm.fRob.Add(new Poker(plist[pnumber].name, 2, plist[pnumber].color));
            }
            else if (plist[pnumber].value == 11)
            {
                cm.fRob.Add(new Poker(plist[pnumber].name, 1, plist[pnumber].color));
            }
        }
        //第三个人的牌
        else if (pnumber % 4 == 2)
        {
            cm.sList.Add(plist[pnumber]);
            //把抢庄的牌加入集合
            if (plist[pnumber].value == 10 && (plist[pnumber].color == 1 || plist[pnumber].color == 3))
            {
                cm.sRob.Add(new Poker(plist[pnumber].name, 2, plist[pnumber].color));
            }
            else if (plist[pnumber].value == 11)
            {
                cm.sRob.Add(new Poker(plist[pnumber].name, 1, plist[pnumber].color));
            }
        }
        //第四个人的牌
        else if (pnumber % 4 == 3)
        {
            cm.tList.Add(plist[pnumber]);
            //把抢庄的牌加入集合
            if (plist[pnumber].value == 10 && (plist[pnumber].color == 1 || plist[pnumber].color == 3))
            {
                cm.tRob.Add(new Poker(plist[pnumber].name, 2, plist[pnumber].color));
            }
            else if (plist[pnumber].value == 11)
            {
                cm.tRob.Add(new Poker(plist[pnumber].name, 1, plist[pnumber].color));
            }
        }

        print(plist[pnumber].ToString());
    }
Esempio n. 4
0
    /// <summary>
    /// 初始化出牌的点击事件
    /// </summary>
    void Start()
    {   //通过标签拿到对象
        // scoreText = GameObject.FindWithTag("score") as Text;
        // canvas = GetComponent<Canvas>();
        cd   = CardUtils.GetInstance();
        game = gameObject.GetComponent <player>();
        //出牌点击事件
        playCard.onClick.AddListener(delegate()
        {
            playCardOnClick();
        });
        //再来一局按钮
        restart.onClick.AddListener(delegate()
        {
            restart.gameObject.SetActive(false);
            game.SendMessage("RestartGame");
        });
        //埋牌点击事件
        BuriedCard.onClick.AddListener(delegate()
        {
            BuriecdCard();
        });
        //一打三
        radio.onClick.AddListener(delegate()
        {   //设置两边的队友
            CardManager.Instance.banker.Add(0);
            CardManager.Instance.civilians.Add(1);
            CardManager.Instance.civilians.Add(2);
            CardManager.Instance.civilians.Add(3);
            //隐藏找朋友按钮
            radio.gameObject.SetActive(false);
            select.gameObject.SetActive(false);
            //显示出牌按钮
            playCard.gameObject.SetActive(true);
        });
        //找朋友
        select.onClick.AddListener(delegate()
        {
            List <int> count = new List <int>();
            count.Add(PlayRules.Instance.findFriends(CardManager.Instance.mList) + PlayRules.Instance.findFriends(CardManager.Instance.blist));
            count.Add(PlayRules.Instance.findFriends(CardManager.Instance.fList));
            count.Add(PlayRules.Instance.findFriends(CardManager.Instance.sList));
            count.Add(PlayRules.Instance.findFriends(CardManager.Instance.tList));
            //默认两个6不成对
            bool f = false;
            //2个主6在哪个人手里
            //  int pdouble=-1;
            //查找主6 是否成对
            for (int i = 0; i < count.Count; i++)
            {
                if (count[i] == 2)
                {
                    f = true;
                }
            }
            //主6成对
            if (f)
            {
                CardManager.Instance.banker.Add(0);
                CardManager.Instance.banker.Add(2);
                CardManager.Instance.civilians.Add(1);
                CardManager.Instance.civilians.Add(3);
            }
            //主6没成对
            else
            { //存有6的
                List <int> list = new List <int>();
                //存没有6的
                List <int> nlist = new List <int>();
                //找出6在那个人手里
                for (int i = 0; i < count.Count; i++)
                {
                    if (count[i] >= 0)
                    {
                        list.Add(i);
                    }
                    else
                    {
                        nlist.Add(i);
                    }
                }
                //自己没有6
                if (count[0] == 0)
                {
                    foreach (int item in nlist)
                    {
                        CardManager.Instance.banker.Add(item);
                    }

                    foreach (int item in list)
                    {
                        CardManager.Instance.civilians.Add(item);
                    }
                }
                //自己有6
                else if (count[0] == 1)
                {
                    foreach (int item in list)
                    {
                        CardManager.Instance.banker.Add(item);
                    }

                    foreach (int item in nlist)
                    {
                        CardManager.Instance.civilians.Add(item);
                    }
                }
            }
            //隐藏找朋友按钮
            radio.gameObject.SetActive(false);
            select.gameObject.SetActive(false);
            //显示出牌按钮
            playCard.gameObject.SetActive(true);
        });
    }