Esempio n. 1
0
        /// <summary>
        /// Komputer rozgrywa okreslona liczbe rak, bez jakiejkolwiek interakcji z graczem.
        /// Kazde rozdanie jest powtorzone 1krotnie z powodu rotacji rak. 1 raz bo gramy w parach.
        /// </summary>
        /// <param name="repetitions">Liczba unikalnych rozdan - nie powinna byc zbyt duza
        /// poniewaz kazde rozdanie jest rotowanie 1 raz.</param>
        private void PlayContinuouslyRepeatHands(int repetitions)
        {
            ExtraFunctions.BeginTime();
            for (int i = 0; i < Repetitions; i++)
            {
                DealNextHand();

                //gramy w parach wiec 2 powtorzenia
                for (int k = 0; k < 2; k++)
                {
                    //policz na poczatku gry
                    BeginGameCalculations();
                    WhoStarts();
                    for (int j = 0; j < CardsPerPlayer; j++)
                    {
                        PlayAutoTrick();
                        GameShape.MouseLeftButtonDown -= new MouseButtonEventHandler(GameShape_MouseLeftButtonDown);
                        CleanUpTrick();
                    }
                    //zamien rece -> do badan
                    List <Card> changeHands = MakeListCardFromHands();
                    bool        rotation    = (k == 0) ? false : true; //sprawdz czy zrobic rotacje
                    EndGame(rotation);                                 //skoncz rozdanie
                    CollectCards();                                    //przenies karty do dealera
                    _dealer.InitPower(TrumpColor);                     //policz power kazdej karty znowu
                    GivePreppedHands(changeHands, 2);                  //daj 2giemu graczowi karty 1go (itd.)
                    DealerNumber += 1;

                    //posortuj
                    Player1Hand.Deck.Sort();
                    Player2Hand.Deck.Sort();
                    Player3Hand.Deck.Sort();
                    Player4Hand.Deck.Sort();
                }
            }
            //jak skonczyles liczyc/grac to pozbieraj karty
            CollectCards();
            ExtraFunctions.EndTime();
            SystemSounds.Asterisk.Play();   //dzwiek zakonczenia
            scoreWinRef.resultBox.Items.Add("Czas wykonania: " + ExtraFunctions.GlobalWatch.Elapsed.TotalSeconds.ToString() + " s");
        }
Esempio n. 2
0
 /// <summary>
 /// Komputer rozgrywa okreslona liczbe rak, bez jakiejkolwiek interakcji z graczem.
 /// </summary>
 /// <param name="repetitions">Liczba rozdan ktore AI ma ze soba zagrac.</param>
 private void PlayContinuously(int repetitions)
 {
     ExtraFunctions.BeginTime();
     for (int i = 0; i < repetitions; i++)
     {
         DealNextHand();
         WhoStarts();
         //policz na poczatku gry
         BeginGameCalculations();
         for (int j = 0; j < CardsPerPlayer; j++)
         {
             PlayAutoTrick();
             GameShape.MouseLeftButtonDown -= new MouseButtonEventHandler(GameShape_MouseLeftButtonDown);
             CleanUpTrick();
         }
         //zamien rece do badan -> zrealizowane w PlayContinuouslyRepeatHands
         EndGame();
     }
     ExtraFunctions.EndTime();
     SystemSounds.Asterisk.Play();
     scoreWinRef.resultBox.Items.Add("Czas wykonania: " + ExtraFunctions.GlobalWatch.Elapsed.TotalSeconds.ToString() + " s");
 }