Esempio n. 1
0
 public Card Discard(Card c)
 {
     Log.WriteLine("discards {0}", c.ToString());
     c.In = Card.Holder.DISCARD;
     if (this.Hints < HINTS) this.Hints++;
     return Draw();
 }
Esempio n. 2
0
 public static void Shuffle(Card[] list)
 {
     var n = list.Length;
      while (n > 1)
      {
     n--;
     var k = Rng.Next(n + 1);
     var value = list[k];
     list[k] = list[n];
     list[n] = value;
      }
 }
Esempio n. 3
0
 public Card Play(Card c)
 {
     Log.Write("plays {0}... ", c.ToString());
     if (this.Deck.AllowPlay(c))
     {
         Log.WriteLine("OK!");
         c.In = Card.Holder.BOARD;
         if (c.Number == Card.NUMBERS && this.Hints < HINTS) this.Hints++;
     }
     else
     {
         Log.WriteLine("FAIL!");
         c.In = Card.Holder.DISCARD;
         this.Fails--;
     }
     return Draw();
 }
Esempio n. 4
0
 private void ContemplateSuitHint(Card.Suit suit, IEnumerable<Card> relevantCards)
 {
     var remainingCardsForSuit = Card.GetNumbers().Count() - game.Progress[suit];
      if (remainingCardsForSuit < relevantCards.Count())
      {
     foreach (var card in relevantCards)
     {
        card.ShouldBurn = true;
     }
      }
      else if (relevantCards.Count() == 1)
      {
     relevantCards.First().ShouldGain = true;
      }
 }
Esempio n. 5
0
 public void ReceiveCard(Card card)
 {
     cards.Add(card);
      validHintCache.Clear();
      PushUndoable(delegate()
      {
     cards.Remove(card);
     validHintCache.Clear();
      });
 }
Esempio n. 6
0
 protected Play(Card card)
 {
     Card = card;
 }
Esempio n. 7
0
 public Gain(Card card)
     : base(card)
 {
 }
Esempio n. 8
0
 public Burn(Card card)
     : base(card)
 {
 }
Esempio n. 9
0
 public SuitHint(Player targetPlayer, Card.Suit suit)
 {
     TargetPlayer = targetPlayer;
      Suit = suit;
 }
Esempio n. 10
0
 public PlayerCard(Card card)
 {
     Color = card.Color;
     Rank = card.Rank;
     Initialization();
 }
Esempio n. 11
0
 public IEnumerable<Card> GetRemainingCards()
 {
     var output = new Card[cards.Length-currentCardIndex];
      Array.Copy(cards, currentCardIndex, output, 0, output.Length);
      return output;
 }
Esempio n. 12
0
 public void AddCard(Card c)
 {
     if (c == null) return;
     this.Cards.Add(new HeldCard(c));
 }