public BeehiveGame() { deck = new List<Card>(); for (int i = 1; i <= 13; i++) { char c = map(i); deck.Add(new Card(Card.Suit.Club, c)); deck.Add(new Card(Card.Suit.Spade, c)); deck.Add(new Card(Card.Suit.Heart, c)); deck.Add(new Card(Card.Suit.Diamond, c)); } var shuffledcards = deck.OrderBy(a => Guid.NewGuid()); deck = new List<Card>(shuffledcards); flowerStack1 = new SerializableStack<Card>(); flowerStack2 = new SerializableStack<Card>(); flowerStack3 = new SerializableStack<Card>(); flowerStack4 = new SerializableStack<Card>(); flowerStack5 = new SerializableStack<Card>(); flowerStack6 = new SerializableStack<Card>(); beehiveStack = new SerializableStack<Card>(); workingPile = new SerializableStack<Card>(); for (int i = 0; i < 10; i++) { beehiveStack.Push(deck.ElementAt(0)); deck.RemoveAt(0); } for (int i = 0; i < 3; i++) { workingPile.Push(deck.ElementAt(0)); deck.RemoveAt(0); } flowerStack1.Push(deck.ElementAt(0)); deck.RemoveAt(0); flowerStack2.Push(deck.ElementAt(0)); deck.RemoveAt(0); flowerStack3.Push(deck.ElementAt(0)); deck.RemoveAt(0); flowerStack4.Push(deck.ElementAt(0)); deck.RemoveAt(0); flowerStack5.Push(deck.ElementAt(0)); deck.RemoveAt(0); flowerStack6.Push(deck.ElementAt(0)); deck.RemoveAt(0); startTime = DateTime.Now.ToFileTime(); }
internal void ClrAll() { this.stack = new SerializableStack(); }
public bool moveTopOfStackToFlower(SerializableStack<Card> source, int stack) { SerializableStack<Card> flowerStack = getFlowerStack(stack); if (source.Count() > 0) { char workingCardValue = source.Peek().getValue(); if (flowerStack.Count() > 0) { d("move top " + stack + " src " + source.Peek() + " d " + flowerStack.Peek()); } if (flowerStack.Count() == 0 || flowerStack.Peek().getValue() == workingCardValue) { Card toMove = source.Pop(); flowerStack.Push(toMove); if (flowerStack.Count() >= 4) { d("cleared flower stack: " + flowerStack.Peek().getValue()); flowerStack.Clear(); } checkWinState(); return true; } } return false; }