示例#1
0
        //  カードを配る
        public void DealCards()
        {
            int handMax = rule.CountOfMoment.Value * 2;

            //  切り札をドロー
            if (rule.IsEnableTrump)
            {
                Player1.DrawTrump(deck);
                Player2.DrawTrump(deck);
            }

            //  両プレイヤーの手札がMaxになるまで交互にドローする
            IPlayer targetPlayer = Player1;

            while (Player1.Hand.Cards.Count < handMax || Player2.Hand.Cards.Count < handMax)
            {
                if (deck.IsEmpty())     //  デッキが空になったらtrashから全部取り出してシャッフルしてデッキにする
                {
                    deck.AppendCards(trash.Remove().Shuffle(randGen));
                }
                targetPlayer.Hand.Cards.Add(deck.Deal());

                targetPlayer = targetPlayer == Player1 ? Player2 : Player1;
            }

            isP1MovePlotted   = false;
            isP2MovePlotted   = false;
            isP1ActionPlotted = false;
            isP2ActionPlotted = false;

            CurrentPhase = Phase.MovePlot;
        }
示例#2
0
        //  ボードを作成する
        public void MakeBoard(bool isPlayer1)
        {
            CurrentPhase = Phase.Start;

            Player1 = new Player(true, rule);
            Player2 = new Player(false, rule);

            cardSet = new CardSet.Factory(this).CreateClassic();
            deck    = new Deck();
            trash   = new Trash();

            deck.AppendCards(cardSet.EnumerateNormalCards().Shuffle(randGen));
            deck.AppendTrumps(cardSet.EnumerateTrumps().Shuffle(randGen));

            MyPlayer = isPlayer1 ? Player1 : Player2;

            currentIndex = -1;
        }