private void DiscardCardFromHand(Cards.Card p) { if (!humanDiscard && humanDraw) { HumanCards.Remove(p); Discards.Add(p); removePossibleCard(p); humanDiscard = true; startGame = true; playerTurn = false; } else { if (!startGame) { RaiseNotification("You must draw a card first", "Invalid Action"); } else { if (!playerTurn) { RaiseNotification("You already discard a card", "Invalid Action"); } else { RaiseNotification("You must draw a card first", "Invalid Action"); } } } }
private void InternalOnPlay(Cards.Card card) { OnPlay(card); RegistrationSet.hand.CardPlayed -= this.InternalOnPlay; RemoveSelf(); }
//Function to remove possible card after it is seen by computer private void removePossibleCard(Cards.Card p) { if (PossibleDeck.Contains(p)) { PossibleDeck.Remove(p); } }
private async void Deal() { var deck = Cards.Shuffle(Cards.FullDeck); foreach (var card in deck) { PossibleDeck.Add(card); // Possible list of card RemainingDeck.Add(card); await Task.Delay(1); } for (int i = 0; i < 10; i++) { Cards.Card computerCard = DrawTopCardFromDeck(); ComputerCards.Add(computerCard); // Remove the list of card on computer hand, as it is seen removePossibleCard(computerCard); await Task.Delay(30); HumanCards.Add(DrawTopCardFromDeck()); await Task.Delay(30); } Discards.Add(DrawTopCardFromDeck()); // Remove the discard from possible deck removePossibleCard(Discards[Discards.Count - 1]); ScoreToWin = "Score To Win : " + winingScore.ToString(); scoreLabel(firstWinnerScore, secondWinnerScore); }
private void TakeCardFromDiscardPile(Cards.Card p) { if (humanTurn) { Discards.Remove(p); HumanCards.Add(p); } }
private void TakeCardFromDeck(Cards.Card card) { if (humanTurn) { RemainingDeck.Remove(card); HumanCards.Add(card); } }
/// <summary> /// Called at the start of the game to make each player's hand 5 cards. /// </summary> internal void draw5Cards() { for (int i = 0; i < 5; i++) { Cards.Card cardOnTopOfDeck = MainDeck.drawTopCard(); Hand.Add(cardOnTopOfDeck); MeReadOnly.NumberOfCardsInHand = MeReadOnly.NumberOfCardsInHand + 1; } }
private void DiscardCardFromHand(Cards.Card p) { if (HumanCards.Count > 10 && humanTurn) { HumanCards.Remove(p); Discards.Add(p); humanTurn = false; } }
private void TakeCardFromDeck(Cards.Card card) { if (!takenFromDeckOrDiscardPile) // Human goes first { RemainingDeck.Remove(card); HumanCards.Add(card); takenFromDeckOrDiscardPile = true; canNowDiscard = true; } }
private void TakeCardFromDiscardPile(Cards.Card p) { if (!takenFromDeckOrDiscardPile) { Discards.Remove(p); HumanCards.Add(p); takenFromDeckOrDiscardPile = true; canNowDiscard = true; } }
private void ComputerPlayerTurn() { Cards.Card card = DrawTopCardFromDeck(); ComputerCards.Add(card); ComputerCards.Remove(card); Discards.Add(card); computerStage = false; pickUpStage = true; }
private void ComputerTurn() { var takeDiscard = ComputerPlayer.ComputerPickupDiscard(ComputerCards, Discards[Discards.Count - 1], RemainingDeck); if (takeDiscard) { var discardCard = Discards[Discards.Count - 1]; Discards.Remove(discardCard); ComputerCards.Add(discardCard); } else { Cards.Card remainingDeckCards = RemainingDeck[RemainingDeck.Count - 1]; RemainingDeck.Remove(remainingDeckCards); ComputerCards.Add(remainingDeckCards); } var compMove = ComputerPlayer.ComputerMove(ComputerCards); ComputerCards.Remove(compMove.Item2.Value); Discards.Add(compMove.Item2.Value); var scores = GinRummy.Score(ComputerCards, HumanCards); if (compMove.Item1.IsGin) { compScore += scores; if (humanScore < 100 && compScore < 100) { RaiseNotification("Human Score: " + humanScore + ". Computer Score: " + compScore, "Scores So Far"); CleanUpCards(); } } else if (compMove.Item1.IsKnock) { if (scores > 0) { compScore += scores; if (humanScore < 100 && compScore < 100) { RaiseNotification("Human Score: " + humanScore + ". Computer Score: " + compScore, "Scores So Far"); CleanUpCards(); } } else { humanScore += Math.Abs(scores); if (humanScore < 100 && compScore < 100) { RaiseNotification("Human Score: " + humanScore + ". Computer Score: " + compScore, "Scores So Far"); CleanUpCards(); } } } }
private void DiscardCardFromHand(Cards.Card p) { if (canNowDiscard) { HumanCards.Remove(p); Discards.Add(p); canNowDiscard = false; computerSeen.Remove(p); ArtificialPlayer(); } }
private void TakeCardFromDeck(Cards.Card card) { if (!humanDraw) { RemainingDeck.Remove(card); HumanCards.Add(card); humanDraw = true; } else { RaiseNotification("You already take a card", "Invalid Action"); } }
private void TakeCardFromDiscardPile(Cards.Card p) { if (!humanDraw) { Discards.Remove(p); HumanCards.Add(p); humanDraw = true; } else { RaiseNotification("You already take a card", "Invalid Action"); } }
private void TakeCardFromDiscardPile(Cards.Card p) { if (pickUpStage) { Discards.Remove(p); HumanCards.Add(p); pickUpStage = false; discardStage = true; } else { RaiseNotification("Not in Pick-Up Stage", "Title"); } }
private void TakeCardFromDeck(Cards.Card card) { if (pickUpStage) { RemainingDeck.Remove(card); HumanCards.Add(card); pickUpStage = false; discardStage = true; } else { RaiseNotification("Not in Pick-Up Stage", "Title"); } }
private void DiscardCardFromHand(Cards.Card p) { if (discardStage) { HumanCards.Remove(p); Discards.Add(p); discardStage = false; computerStage = true; ComputerPlayerTurn(); } else { RaiseNotification("Not in Discard Stage", "Title"); } }
public void TestAce() { Cards.Card card = new Cards.Card(); Cards.Deck deck = new Cards.Deck(); Hand hand = new Hand(); string name = ""; int count = 0; card.face = Cards.Face.Ace; hand.Play(name, count); Assert.AreEqual(8, deck.DrawCard()); Assert.AreEqual(1, deck.DrawCard()); Assert.AreEqual(1, card.face); Assert.AreEqual(8, card.face); Assert.AreEqual(10, deck.DrawCard()); }
private void ComputerDiscardCardFromHand() { if (humanDiscard) { ComputerPlayer.Move move = ComputerPlayer.ComputerMove(ComputerCards).Item1; Cards.Card discard = ComputerPlayer.ComputerMove(ComputerCards).Item2.Value; Discards.Add(discard); ComputerCards.Remove(discard); humanDiscard = false; playerTurn = true; if (move == ComputerPlayer.Move.Gin) { endGame(); } else if (move == ComputerPlayer.Move.Knock) { endGame(); } } }
internal void Add(Cards.Card card) { _Cards.Insert(0, card); this.Sort(); if (_AsynchronousChanging) { if (_AsynchronousPileChangedEventArgs == null) { _AsynchronousPileChangedEventArgs = new PileChangedEventArgs(null, PileChangedEventArgs.Operation.Added, card); } else { _AsynchronousPileChangedEventArgs.AddedCards.Add(card); } } else if (PileChanged != null) { PileChangedEventArgs pcea = new PileChangedEventArgs(null, PileChangedEventArgs.Operation.Added, card); PileChanged(this, pcea); } }
private void ComputerTakeCardFromDiscardPile() { Cards.Card topDiscard = Discards[Discards.Count - 1]; if (humanDraw) { bool computerPickUp = ComputerPlayer.ComputerPickupDiscard(ComputerCards, topDiscard, PossibleDeck); if (computerPickUp) { ComputerCards.Add(topDiscard); Discards.Remove(topDiscard); humanDraw = false; ComputerDiscardCardFromHand(); } else { var topHiddenCard = RemainingDeck[RemainingDeck.Count - 1]; ComputerCards.Add(topHiddenCard); PossibleDeck.Remove(topHiddenCard); RemainingDeck.Remove(topHiddenCard); humanDraw = false; ComputerDiscardCardFromHand(); } } }
/// <summary> /// Returns the top card and discards it from the deck. /// </summary> /// <returns></returns> internal Cards.Card drawTopCard() { Cards.Card toReturn = CardsInDeck[0]; CardsInDeck.RemoveAt(0); return(toReturn); }
public GamePlayMessage(WaitCallback waitCallback, Player player, Cards.Card card) : base(waitCallback) { Player = player; Card = card; }
public GameMessageEventArgs(Player player, Cards.Card sourceCard) { this.Player = player; this.SourceCard = sourceCard; }
/// <summary> /// Called Each Turn to add One card to the hand. /// </summary> internal void drawCard() { Cards.Card cardOnTopOfDeck = MainDeck.drawTopCard(); Hand.Add(cardOnTopOfDeck as Cards.Card); MeReadOnly.NumberOfCardsInHand = MeReadOnly.NumberOfCardsInHand + 1; }
protected override void HandleHtmlCodeForProvider(Cards.Card card, string htmlCode) { throw new NotImplementedException(); }
public abstract void OnPlay(Cards.Card card);
static string ToString(Cards.Card card) { return(ToString(card.rank) + ToString(card.suit)); }
private void DiscardCardFromHand(Cards.Card p) { HumanCards.Remove(p); Discards.Add(p); }
protected override string AssembleURL(Cards.Card card) { throw new NotImplementedException(); }