static void Main(string[] args) { Player cooper = new Player("Cooper"); Deck deck = new Deck(); cooper.Draw(deck); Console.WriteLine(cooper.hand[0].stringVal + cooper.hand[0].suit); Console.WriteLine(cooper.Discard(0)); Console.WriteLine(cooper.Discard(5)); // Console.WriteLine(deck.Deal().stringVal); // Console.WriteLine("Cards in Deck: "+ deck.cards.Count); // deck.Reset(); // Console.WriteLine("Cards in Deck: "+ deck.cards.Count); // deck.Shuffle(); // foreach(Card card in deck.cards) // { // Console.WriteLine("Card: "+ card.stringVal + " " + card.suit + " " + card.val); // } }
private static bool UpdateChosenCard(Trick trick, Player player, Player currentPlayer, int number) { bool askHumanForChoice; var chosenCard = player.SortedHand()[number - 1]; trick.Cards.Add(chosenCard); player.Discard(chosenCard); askHumanForChoice = false; Console.WriteLine(String.Format("{0} plays {1}", player.Name, chosenCard)); if (player == currentPlayer) { trick.FirstCard = chosenCard; } return(askHumanForChoice); }
public static void ForComputer(Trick trick, Player player, Player currentPlayer) { Card chosenComputerCard; if (player == currentPlayer) //rozpoczyna lewę { if (AtLeastOneHeartWasPlayed()) //rozpoczyna lewę i kiery zostały już zagrane w tej rundzie { chosenComputerCard = LowestCard(player); trick.FirstCard = chosenComputerCard; } else { if (AtLeastOneNotHeartInHand(player)) // rozpoczyna lewę, kiery nie zostały jeszcze zagrane i MA na ręce inne kolory niż kier { chosenComputerCard = LowestCardNotHeart(player); trick.FirstCard = chosenComputerCard; } else // rozpoczyna lewę, kiery nie zostały jeszcze zagrane, ale ma tylko kiery { chosenComputerCard = LowestCard(player); trick.FirstCard = chosenComputerCard; } } } else // nie rozpoczyna lewy { trick.FirstCard = GameController.DetermineTrickWinningCard(trick); var currentSuit = trick.FirstCard.Suit; if (HaveHigherCardInMatchingSuitNotHeartsOrSpades(trick, player, currentSuit)) // nie rozpoczyna lewy i ma wyższą kartę w obowiązującym kolorze, (nie pik i nie kier!) { chosenComputerCard = HighestCardInMatchingSuit(player, currentSuit); } else if (HaveMatchingSuit(player, currentSuit)) //nie rozpoczyna lewy, ma tylko niższe karty w obowiązującym kolorze { chosenComputerCard = LowestCardInMatchingSuit(player, currentSuit); } else // nie rozpoczyna lewy, nie ma kart w obowiązującym kolorze { if (HighestValueCardSpade(player) != null) //ma Asa, Króla lub Damę pik { chosenComputerCard = HighestValueCardSpade(player); //zagrywa w kolejności Damę, Króla lub Asa pik } else if (HighestCardHeart(player) != null) // Ma kiery { chosenComputerCard = HighestCardHeart(player); // zagrywa najwyższego kiera } else { chosenComputerCard = HighestCard(player); // zagrywa najwyższą kartę } } } trick.Cards.Add(chosenComputerCard); player.Discard(chosenComputerCard); Game.AllPlayedCards.Add(chosenComputerCard); GameView.ChosenComputerCard(player, chosenComputerCard); }