Example #1
0
        public int[] PlayRound()
        {
            var cards = CardCollection.AllCards();

            //Deal cards
            var playerCards = Dealer.Deal(CardCollection.AllCards(), PlayerCount);
            var minHandSize = playerCards.Min(hand => hand.Cards().Count());
            var seats       = Enumerable.Range(0, PlayerCount).Select(i =>
            {
                return(new Seat(i, _players[i], playerCards[i]));
            }).ToArray();

            InitialMove[] initialMoves = DoInitialMoves(playerCards);
            GiveInitialCards(playerCards, initialMoves);

            var         scoreCount     = new ScoreCount(PlayerCount);
            TrickResult previousWinner = null;

            for (int i = 0; i < minHandSize - 1; i++)
            {
                previousWinner = new TrickEngine(seats).PlayTrick(previousWinner);
                scoreCount.Add(previousWinner.Winner.Index, previousWinner.WinnerPrice());
            }

            var bottleTax = initialMoves.Sum(move => move.ToBottle.Score);
            var scores    = Scores(scoreCount, previousWinner.BottleOwner.Index, bottleTax);

            foreach (var player in _players)
            {
                player.RoundEnded(scores);
            }

            return(scores);
        }
Example #2
0
 public override void Undo()
 {
     location.Clear();
     foreach (Card c in before.AllCards())
     {
         location.Add(c);
     }
 }
Example #3
0
 public override void Execute()
 {
     foreach (Card c in location.AllCards())
     {
         before.Add(c);
     }
     cg.SetDeck(deck, location, script);
 }
Example #4
0
 public override void Undo()
 {
     locations.cardList.Clear();
     foreach (Card c in unshuffled.AllCards())
     {
         locations.Add(c);
     }
 }
Example #5
0
 private void SortCards(CardCollection source)
 {
     Reset();
     foreach (var card in source.AllCards())
     {
         var curScore = score.GetScore(card);
         array[curScore].Add(card);
     }
 }
Example #6
0
        private CardCollection Clone(CardCollection source)
        {
            var recurseList = new CardCollection(CCType.VIRTUAL);

            foreach (var card in source.AllCards())
            {
                recurseList.Add(card);
            }
            return(recurseList);
        }
Example #7
0
        public Card Get()
        {
            //Console.WriteLine("locid:" + locIdentifier);
            switch (locIdentifier)
            {
            case "top":
                return(cardList.Peek());

            case "bottom":
                System.Collections.Generic.IEnumerator <Card> e = cardList.AllCards().GetEnumerator();
                e.MoveNext();
                return(e.Current);

            case "-1":
                // SHOULD THIS THROW EXCEPTION INSTEAD?
                return(cardList.Peek());

            default:
                return(cardList.Get(Int32.Parse(locIdentifier)));
            }
        }