Пример #1
0
        async private void ArtificialPlayer()
        {
            if (takenFromDeckOrDiscardPile)
            {
                while (true)
                {
                    ComputerThoughts = "Calculating your impending doom ...";


                    foreach (var card in ComputerCards)
                    {
                        computerSeen.Remove(card);
                    }

                    GinRummy.sortByRankAndSuit(ComputerCards);

                    var x = ComputerPlayer.averageAllOfThePossibleDeadwoods(computerSeen, ComputerCards);


                    var pickupFromDeckOrDiscard = await Task.Run(() => ComputerPlayer.ComputerPickupDiscard(ComputerCards, Discards.First(), computerSeen));


                    if (pickupFromDeckOrDiscard) // picking up from the deck
                    {
                        ComputerThoughts = "You can not comprehend how much I know the top of the deck will benefit me, fool!";
                        ComputerCards.Add(DrawTopCardFromDeck());
                        await Task.Delay(5000);

                        var cardToAddToDiscard = ComputerPlayer.ComputerMove(ComputerCards);
                        ComputerCards.Remove(cardToAddToDiscard.Item2.Value);
                        Discards.Add(cardToAddToDiscard.Item2.Value);
                    }
                    else     // picking up from the discard
                    {
                        ComputerThoughts = "Ahh this card will do very nicely, my thanks for allowing me to have it, fool!";

                        await Task.Delay(2000);

                        var topOfDiscard = Discards[Discards.Count - 1];
                        ComputerCards.Add(topOfDiscard);
                        Discards.Remove(topOfDiscard);
                        await Task.Delay(5000);

                        var cardToAddToDiscard = ComputerPlayer.ComputerMove(ComputerCards);
                        ComputerCards.Remove(cardToAddToDiscard.Item2.Value);
                        Discards.Add(cardToAddToDiscard.Item2.Value);
                    }
                    ComputerThoughts = "I now end my turn. Your move, human." + GinRummy.Deadwood(ComputerCards);

                    break;
                }
                canNowDiscard = false;
                takenFromDeckOrDiscardPile = false;
            }
        }