コード例 #1
0
ファイル: Game.cs プロジェクト: pipWM/JokerElements
    void Func10()
    {
        //10捨て
        if (CardRequest.cards.Count <= placeCard.count10)
        {
            for (int i = CardRequest.cards.Count - 1; i >= 0; i--)
            {
                DisCard.Add(CardRequest.cards[i]);
                HandCard.RemoveAt(HandCard.IndexOf(CardRequest.cards[i]));
            }

            MyTurn            = false;
            Enemy.MyTurn      = true;
            Is10              = false;
            CardSpriteChanged = true;
        }
        else
        {
            CardRequest       = null;
            CardChanged       = false;
            CardSpriteChanged = false;
            for (int i = 0; i < HandCard.Count; i++)
            {
                HandCard[i].setIsPrepare(false);
            }
        }
    }
コード例 #2
0
ファイル: Game.cs プロジェクト: pipWM/JokerElements
 public void pass()
 {
     if (!MyTurn)
     {
         return;
     }
     if (!Is7 && !Is10)
     {
         for (int i = 0; i < HandCard.Count; i++)
         {
             HandCard[i].setIsPrepare(false);
         }
         CardSpriteChanged       = true;
         Enemy.CardSpriteChanged = true;
         Is7              = false;
         Is10             = false;
         placeCard        = null;
         Enemy.placeCard  = null;
         NumberRegulation = -1;
         MyTurn           = false;
         Enemy.MyTurn     = true;
         DisCard          = new List <Card>();
         Enemy.DisCard    = new List <Card>();
         GameObject.Find("UIController").GetComponent <CardScript>().Flash();
     }
     else if (Is7)
     {
         for (int i = 0; i < HandCard.Count; i++)
         {
             HandCard[i].setIsPrepare(false);
         }
         Is7          = false;
         MyTurn       = false;
         Enemy.MyTurn = true;
     }
     else
     {
         for (int i = 0; i < HandCard.Count; i++)
         {
             HandCard[i].setIsPrepare(false);
         }
         Is10         = false;
         MyTurn       = false;
         Enemy.MyTurn = true;
     }
 }
コード例 #3
0
ファイル: Game.cs プロジェクト: pipWM/JokerElements
 public void CardChangeRequest(int PlayerNumber, PlaceCard p)
 {
     Player[PlayerNumber].CardRequest = p;
     Player[PlayerNumber].CardChanged = true;
 }
コード例 #4
0
ファイル: Game.cs プロジェクト: pipWM/JokerElements
    bool CardPlaceCheck(PlaceCard p)//カードが受理されるか
    {
        //枚数が違う
        if (Enemy.placeCard != null && Enemy.placeCard.cards.Count != p.cards.Count)
        {
            return(false);
        }

        //マーク縛り
        if (Enemy.placeCard != null)
        {
            for (int i = 0; i < p.IsMark.Length; i++)
            {
                if (MarkRegulation[i] && !p.IsMark[i])
                {
                    if (p.CountJoker > 0)
                    {
                        p.CountJoker--;
                    }
                    else
                    {
                        return(false);
                    }
                }
            }
        }


        if (NumberRegulation != -1 && NumberRegulation + 1 != p.cards[0].getNum() && p.cards[0].getNum() != 16 && (p.cards[0].getMark() != 0 || p.cards[0].getImageNum() != 3))
        {
            //数字縛り
            return(false);
        }
        if (p.cards.Count >= 2)//複数
        {
            int n = p.cards[0].getNum();
            for (int i = 1; i < p.cards.Count; i++)
            {
                //数がそろっていない
                if (p.cards[i].getNum() != n && p.cards[i].getNum() != 16)
                {
                    return(false);
                }
            }

            //数が敵のカードよりも小さい
            if (Enemy.placeCard != null && p.cards[0].getNum() <= Enemy.placeCard.cards[0].getNum())
            {
                return(false);
            }
        }
        else //単体
        {
            //スペ3
            if (Enemy.placeCard != null && Enemy.placeCard.cardNum == 1 && Enemy.placeCard.cards[0].getMark() == 4 && p.cards[0].getMark() == 0 && p.cards[0].getImageNum() == 3)
            {
                return(true);
            }
            //数が敵のカードよりも小さい
            if (Enemy.placeCard != null && p.cards[0].getNum() <= Enemy.placeCard.cards[0].getNum())
            {
                return(false);
            }
            //ジョーカーに対してジョーカーを出そうとする
            if (Enemy.placeCard != null && Enemy.placeCard.cards[0].getNum() == 16 && p.cards[0].getNum() == 16)
            {
                return(false);
            }
        }
        return(true);
    }
コード例 #5
0
ファイル: Game.cs プロジェクト: pipWM/JokerElements
    public void IsCardChangeRequest()
    {
        if (!MyTurn || CardRequest == null || CardRequest.cards == null)
        {
            CardRequest = null;
            CardChanged = false;
            return;
        }
        if (Is7)
        {
            //7渡し
            Func7();
            return;
        }
        if (Is10)
        {
            //10捨て
            Func10();
            return;
        }

        //7渡し,10捨て以外の場合
        bool check = CardPlaceCheck(CardRequest);

        if (!check)
        {
            CardRequest       = null;
            CardChanged       = false;
            CardSpriteChanged = false;
            for (int i = 0; i < HandCard.Count; i++)
            {
                HandCard[i].setIsPrepare(false);
            }
            return;
        }

        //チェックが通った
        if (placeCard != null)
        {
            for (int i = 0; i < placeCard.cards.Count; i++)
            {
                DisCard.Add(placeCard.cards[i]);
            }
        }

        placeCard = CardRequest;

        Is7  = (placeCard.count7 > 0);
        Is10 = (placeCard.count10 > 0);

        CardRequest       = null;
        CardChanged       = true;
        CardSpriteChanged = true;
        for (int i = placeCard.cards.Count - 1; i >= 0; i--)
        {
            HandCard.RemoveAt(HandCard.IndexOf(placeCard.cards[i]));
        }

        //スペ3返し
        if (Enemy.placeCard != null && placeCard != null && Enemy.placeCard.cardNum == 1 && Enemy.placeCard.cards != null && Enemy.placeCard.cards[0] != null && Enemy.placeCard.cards[0].getMark() == 4 && placeCard.cards != null && placeCard.cards != null && placeCard.cards[0].getMark() == 0 && placeCard.cards[0].getImageNum() == 3)
        {
            placeCard.cards[0].setNum(17);
        }

        //8切り
        Func8();

        if (!Is7 && !Is10)
        {
            //7,10が含まれるならターンを継続
            MyTurn       = false;
            Enemy.MyTurn = true;
        }

        if (placeCard == null)
        {
            pass();
        }
    }