Exemplo n.º 1
0
        public card_info CreateCard(card_info card_Info)
        {
            var res = ICardinfo.Add(card_Info);

            if (res)
            {
                return(card_Info);
            }
            else
            {
                return(null);
            }
        }
Exemplo n.º 2
0
    public void CheckCardsValue(List <GameObject> hand)
    {
        int tempScore = 0;

        for (int i = 0; i < hand.Count; i++)
        {
            cardInfo   = hand[i].GetComponent <card_info>();
            tempScore += cardInfo.cardValue;
        }

        playerScore = tempScore;

        if (playerScore > 21 && playerAceCount == 0)
        {
            canHit  = false;
            canStay = false;
            PlayerBust();
        }
        else if (playerScore > 21)
        {
            while (playerScore > 21 && playerAceCount > 0)
            {
                playerScore -= 10;
                playerAceCount--;
            }
            if (playerScore == 21)
            {
                canHit  = false;
                canStay = false;
                PlayerBlackjack();
            }
            else if (playerScore > 21)
            {
                canHit  = false;
                canStay = false;
                PlayerBust();
            }
        }
        else if (playerScore == 21)
        {
            canHit  = false;
            canStay = false;
            PlayerBlackjack();
        }
        else
        {
            canHit  = true;
            canStay = true;
        }
    }
Exemplo n.º 3
0
    public void DealCards()
    {
        if (canDeal == true)
        {
            if (cardsInPlay.Count < 4)
            {
                Reshuffle();
            }
            for (var i = 0; i < 2; i++)
            {
                int temp = Random.Range(0, cardsInPlay.Count);

                GameObject playerCard = Instantiate(cardsInPlay[temp], new Vector3(0, 0, 0), Quaternion.identity) as GameObject;
                playerCard.transform.SetParent(PlayerArea.transform, false);
                playerCards.Add(cardsInPlay[temp]);
                cardInfo = cardsInPlay[temp].GetComponent <card_info>();
                if (cardInfo.isAce)
                {
                    playerAceCount++;
                }
                cardsInPlay.RemoveAt(temp);

                temp = Random.Range(0, cardsInPlay.Count);

                GameObject opponentCard = Instantiate(cardsInPlay[temp], new Vector3(0, 0, 0), Quaternion.identity) as GameObject;
                opponentCard.transform.SetParent(OpponentArea.transform, false);
                dealerCards.Add(cardsInPlay[temp]);
                cardInfo = cardsInPlay[temp].GetComponent <card_info>();
                if (cardInfo.isAce)
                {
                    dealerAceCount++;
                }
                cardsInPlay.RemoveAt(temp);
            }
            cardBack.enabled = true;
            canDeal          = false;
            canHit           = true;
            canStay          = true;
            CheckCardsValue(playerCards);
        }
    }
Exemplo n.º 4
0
    void DealerHit()
    {
        if (cardsInPlay.Count < 1)
        {
            Reshuffle();
        }
        int temp = 0;

        temp = Random.Range(0, cardsInPlay.Count);

        GameObject opponentCard = Instantiate(cardsInPlay[temp], new Vector3(0, 0, 0), Quaternion.identity) as GameObject;

        opponentCard.transform.SetParent(OpponentArea.transform, false);
        dealerCards.Add(cardsInPlay[temp]);
        cardInfo = cardsInPlay[temp].GetComponent <card_info>();
        if (cardInfo.isAce)
        {
            dealerAceCount++;
        }
        dealerScore += cardInfo.cardValue;
        cardsInPlay.RemoveAt(temp);
    }
Exemplo n.º 5
0
    public void HitPlayer()
    {
        if (cardsInPlay.Count < 1)
        {
            Reshuffle();
        }
        if (canHit == true && canDeal == false)
        {
            int temp = Random.Range(0, cardsInPlay.Count);

            GameObject playerCard = Instantiate(cardsInPlay[temp], new Vector3(0, 0, 0), Quaternion.identity) as GameObject;
            playerCard.transform.SetParent(PlayerArea.transform, false);
            playerCards.Add(cardsInPlay[temp]);
            cardInfo = cardsInPlay[temp].GetComponent <card_info>();
            if (cardInfo.isAce)
            {
                playerAceCount++;
            }
            cardsInPlay.RemoveAt(temp);
        }
        CheckCardsValue(playerCards);
    }
Exemplo n.º 6
0
    void DealerTurn()
    {
        cardBack.enabled   = false;
        bustText.text      = "";
        blackJackText.text = "";
        int tempScore = 0;

        for (int i = 0; i < dealerCards.Count; i++)
        {
            cardInfo   = dealerCards[i].GetComponent <card_info>();
            tempScore += cardInfo.cardValue;
        }
        dealerScore = tempScore;

        if (dealerScore < 17)
        {
            while (dealerScore < 17)
            {
                DealerHit();
            }
        }
        if (dealerScore > 21)
        {
            if (dealerAceCount > 0)
            {
                while (dealerScore > 21 && dealerAceCount > 0)
                {
                    dealerScore -= 10;
                    dealerAceCount--;
                }
            }
        }
        if (dealerScore > 21)
        {
            dealerBust = true;
        }
        ResolveTurn();
    }
Exemplo n.º 7
0
 public bool UpdateCard(card_info card_Info)
 {
     return(ICardinfo.Update(card_Info));
 }
Exemplo n.º 8
0
        public string BindCard([FromBody] request <BindCard> bindCard)
        {
            if (bindCard == null)
            {
                return(RsXmlHelper.ResXml(-1, "XML格式错误"));
            }

            if (bindCard.model.bindType == "Y") //绑卡
            {
                var ptInfo = ptInfoBLL.GetInfoByCard(bindCard.model.PatId, bindCard.model.PatName);
                var card   = cardInfoBLL.GetCardByCno(bindCard.model.patCardNo);

                card_info existCard = null;

                if (card != null && card.pid != null)
                {
                    if (card.pid == ptInfo.pid)
                    {
                        return(RsXmlHelper.ResXml(0, JsonOperator.JsonSerialize(card)));
                    }
                    else
                    {
                        return(RsXmlHelper.ResXml(99, "卡号已绑定患者"));
                    }
                }
                else if (card != null && card.pid == null)
                {
                    card.pid = ptInfo.pid;
                    cardInfoBLL.UpdateCard(card);

                    ptInfo.cno = card.cno.Trim();
                    ptInfoBLL.Update(ptInfo);

                    return(RsXmlHelper.ResXml(0, ""));
                }
                else
                {
                    if (ptInfo == null)
                    {
                        return(RsXmlHelper.ResXml(99, "患者信息为空"));
                    }

                    if (!string.IsNullOrWhiteSpace(ptInfo.cno))
                    {
                        existCard = cardInfoBLL.GetCardByCno(ptInfo.cno);
                    }

                    if (existCard == null)
                    {
                        cardInfoBLL.CreateCard(new card_info()
                        {
                            cno       = bindCard.model.patCardNo.Trim(),
                            pid       = ptInfo.pid,
                            cmoney    = 0,
                            clevel    = "银卡",
                            status    = 0,
                            addperson = "自助机",
                            addtime   = DateTime.Now,
                            del       = false
                        });

                        ptInfo.cno = bindCard.model.patCardNo.Trim();
                        ptInfoBLL.Update(ptInfo);

                        return(RsXmlHelper.ResXml(0, ""));
                    }
                    else
                    {
                        return(RsXmlHelper.ResXml(0, JsonOperator.JsonSerialize(existCard)));
                    }
                }
            }
            else if (bindCard.model.bindType == "S")
            {
                var ptInfo = ptInfoBLL.GetInfoByCard(bindCard.model.PatId, bindCard.model.PatName);
                if (ptInfo == null)
                {
                    return(RsXmlHelper.ResXml(99, "患者信息为空"));
                }
                if (!string.IsNullOrWhiteSpace(ptInfo.cno))
                {
                    return(RsXmlHelper.ResXml(0, "患者已绑定就诊卡"));
                }
                else
                {
                    return(RsXmlHelper.ResXml(1, "患者未绑定就诊卡"));
                }
            }
            else //解绑
            {
                var ptInfo = ptInfoBLL.GetInfoByCard(bindCard.model.PatId, bindCard.model.PatName);

                card_info card = null;
                if (!string.IsNullOrWhiteSpace(bindCard.model.patCardNo))
                {
                    card = cardInfoBLL.GetCardByCno(bindCard.model.patCardNo);
                }
                else
                {
                    var cardList = cardInfoBLL.GetByPid(ptInfo.pid);
                    if (cardList != null && cardList.Count > 1)
                    {
                        return(RsXmlHelper.ResXml(99, "患者绑定多张卡"));
                    }
                    card = cardList.FirstOrDefault();
                }

                if (ptInfo == null)
                {
                    return(RsXmlHelper.ResXml(99, "患者信息为空"));
                }
                if (card == null || card.pid != ptInfo.pid)
                {
                    return(RsXmlHelper.ResXml(99, "卡号为空或卡号绑定其他患者"));
                }

                ptInfo.cno = null;
                ptInfoBLL.Update(ptInfo);

                card.pid = null;
                cardInfoBLL.UpdateCard(card);
                return(RsXmlHelper.ResXml(0, ""));
            }
        }