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