/// <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; } }
/// <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; }
/// <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()); }
/// <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); }); }