/* * * private async void ComputerDeck() * { * var deck = Cards.FullDeck; * foreach (var card in deck) * { * * * } * } */ private Cards.Card DrawTopCardFromDeck() { var top = RemainingDeck[RemainingDeck.Count - 1]; RemainingDeck.Remove(top); return(top); }
private async void Deal() { ComputerThoughts = "You dare challenge I? I can calculate more moves in a second than you can possibly imagine!"; if (dealFinishied) { dealFinishied = false; var deck = Cards.Shuffle(Cards.FullDeck); foreach (var card in deck) { RemainingDeck.Add(card); await Task.Delay(1); } for (int i = 0; i < 10; i++) { ComputerCards.Add(DrawTopCardFromDeck()); await Task.Delay(30); HumanCards.Add(DrawTopCardFromDeck()); await Task.Delay(30); } Discards.Add(DrawTopCardFromDeck()); dealFinishied = true; } }
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 CleanUpCards() { HumanCards.Clear(); ComputerCards.Clear(); RemainingDeck.Clear(); Discards.Clear(); Deal(); }
private void TakeCardFromDeck(Cards.Card card) { if (humanTurn) { RemainingDeck.Remove(card); HumanCards.Add(card); } }
private void TakeCardFromDeck(Cards.Card card) { if (!takenFromDeckOrDiscardPile) // Human goes first { RemainingDeck.Remove(card); HumanCards.Add(card); takenFromDeckOrDiscardPile = true; canNowDiscard = 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 nextRound() { CheckForEndGame(); takenFromDeckOrDiscardPile = false; canNowDiscard = false; HumanCards.Clear(); ComputerCards.Clear(); RemainingDeck.Clear(); Discards.Clear(); Deal(); }
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 TakeCardFromDeck(Cards.Card card) { if (pickUpStage) { RemainingDeck.Remove(card); HumanCards.Add(card); pickUpStage = false; discardStage = true; } else { RaiseNotification("Not in Pick-Up Stage", "Title"); } }
// Function to reset the game for next rounds // The game will continue if none of player has exceeded // maximum score to win private void resetGame() { Discards.Clear(); HumanCards.Clear(); ComputerCards.Clear(); RemainingDeck.Clear(); PossibleDeck.Clear(); startGame = false; playerTurn = true; humanDraw = false; humanDiscard = false; if (firstWinnerScore >= winingScore || secondWinnerScore >= winingScore) { scoreReset(); } Deal(); }
private async void Deal() { var deck = Cards.Shuffle(Cards.FullDeck); foreach (var card in deck) { RemainingDeck.Add(card); await Task.Delay(1); } for (int i = 0; i < 10; i++) { ComputerCards.Add(DrawTopCardFromDeck()); await Task.Delay(30); HumanCards.Add(DrawTopCardFromDeck()); await Task.Delay(30); } Discards.Add(DrawTopCardFromDeck()); }
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(); } } }