Пример #1
0
        public void ConclusionGetState_CasseAllCardsTransfered()
        {
            Karta transfer0 = ObsugaKart.StwórzKarte(Karta.Dama, Karta.karo);
            Karta transfer2 = ObsugaKart.StwórzKarte(Karta.Król, Karta.karo);
            ConclusionAboutGame conclusionAboutGame = new ConclusionAboutGame(3, 1, Date.simpleCards8);

            conclusionAboutGame.TransferedCard(transfer0, 0);
            conclusionAboutGame.TransferedCard(transfer2, 2);
            conclusionAboutGame.MoveContext = MoveContext1000.ChoseCards;
            var             tmp         = conclusionAboutGame.GetStates();
            int             AmountCards = 0;
            HashSet <Karta> usedcards   = new HashSet <Karta>();

            foreach (var item in tmp.cards.SelectMany(X => X))
            {
                AmountCards++;
                if (usedcards.Contains(item))
                {
                    throw new NotImplementedException("jakaś karta się powtaża");
                }
                usedcards.Add(item);
            }
            Assert.AreEqual(AmountCards, 24);
            Assert.IsTrue(tmp.cards[0].Any(X => X == transfer0));
            Assert.IsTrue(tmp.cards[2].Any(X => X == transfer2));
        }
Пример #2
0
        /// <summary>
        /// aplikacja słóży do optymalizacji pod wzgledem wydajności
        /// </summary>
        /// <param name="args"></param>
        static void Main(string[] args)
        {
            ConclusionAboutGame cm = new ConclusionAboutGame(3, 1, Date.simpleCards8);

            cm.TransferedCard(ObsugaKart.StwórzKarte(Karta.Dama, Karta.kier), 0);
            cm.TransferedCard(ObsugaKart.StwórzKarte(Karta.Król, Karta.kier), 2);
            cm.MoveContext = MoveContext1000.ChoseCards;
            var a = IQ1000Game.GetIqState(cm.GetStates());
        }
Пример #3
0
        public void GetWorstCard()
        {
            IQ1000Game          iq = new IQ1000Game(3, 0.5f);
            ConclusionAboutGame cm = new ConclusionAboutGame(3, 1, Date.simpleCards8);

            cm.MoveContext = MoveContext1000.ChoseCards;

            List <Karta> z = iq.GetWorstCard(new List <Karta>()
            {
                ObsugaKart.StwórzKarte(Karta.As, Karta.kier), ObsugaKart.StwórzKarte(Karta.K10, Karta.kier)
            }, 2);
        }
Пример #4
0
        public void ConclusionGetState_CasseRestryction()
        {
            ConclusionAboutGame conclusionAboutGame = new ConclusionAboutGame(3, 1, Date.simpleCards8);

            conclusionAboutGame.PlayerConclusion[0].TheMostFigureInColor[0] = Karta.K2;
            conclusionAboutGame.PlayerConclusion[2].TheMostFigureInColor[3] = Karta.K2;
            conclusionAboutGame.MoveContext = MoveContext1000.ChoseCards;
            var tmp = conclusionAboutGame.GetStates();

            Assert.IsFalse(tmp.cards[0].Any(X => ObsugaKart.Kolor(X) == Karta.trelf));
            Assert.IsFalse(tmp.cards[2].Any(X => ObsugaKart.Kolor(X) == Karta.pik));
        }
Пример #5
0
        public void GetBidSum()
        {
            IQ1000Game          iq = new IQ1000Game(3, 0.5f);
            ConclusionAboutGame cm = new ConclusionAboutGame(3, 1, Date.simpleCards8);

            cm.TransferedCard(ObsugaKart.StwórzKarte(Karta.Dama, Karta.kier), 0);
            cm.TransferedCard(ObsugaKart.StwórzKarte(Karta.Król, Karta.kier), 2);
            cm.MoveContext = MoveContext1000.ChoseCards;
            int w = iq.CalculateBidAmount(cm);

            Debug.WriteLine($"wartość do licytacji {w}");
            Assert.IsTrue(w < 150 && w > 70);
        }
Пример #6
0
 private void Controler_KtośWysłałKarte(object sender, Tuple <Urzytkownik, Karta> e)
 {
     if (InGame == null)
     {
         InGame = new ConclusionAboutGame(AmountPlaeyr, controler.IndexPlayer(Name), controler.TwojeKarty);
         InGame.Active(false);
     }
     //ConclusionAboutBehavior(controler.Stół, controler.AktywnaKozera, controler.Kozera);
     if (e.Item1.Nazwa != Name)
     {
         InGame.CalculateConclusion(controler.IndexPlayer(e.Item1.Nazwa), controler.Stół, controler.AktywnaKozera, controler.Kozera);
     }
 }
Пример #7
0
        public void UsingIq()
        {
            ConclusionAboutGame cm = new ConclusionAboutGame(3, 1, Date.simpleCards8);

            cm.TransferedCard(ObsugaKart.StwórzKarte(Karta.Dama, Karta.kier), 0);
            cm.TransferedCard(ObsugaKart.StwórzKarte(Karta.Król, Karta.kier), 2);
            cm.MoveContext = MoveContext1000.ChoseCards;
            var a           = IQ1000Game.GetIqState(cm.GetStates());
            int Sum         = a.Item2.scoreInCurentGame.Sum();
            int AmountCards = a.Item2.cards.Sum(X => X.Count);

            Assert.IsTrue(Sum >= 120);
            Assert.AreEqual(0, AmountCards);
        }
Пример #8
0
        public void ConclusionGetState_CasseAllCards()
        {
            ConclusionAboutGame conclusionAboutGame = new ConclusionAboutGame(3, 1, Date.simpleCards);
            var             tmp         = conclusionAboutGame.GetStates();
            int             AmountCards = 0;
            HashSet <Karta> usedcards   = new HashSet <Karta>();

            foreach (var item in tmp.cards.SelectMany(X => X))
            {
                AmountCards++;
                if (usedcards.Contains(item))
                {
                    throw new NotImplementedException("jakaś karta się powtaża");
                }
                usedcards.Add(item);
            }
            Assert.AreEqual(AmountCards, 24);
        }
Пример #9
0
        private async void Controler_OdbierzMusek(object sender, GraKarciana.Karta[] e)
        {
            IQ1000Game iq = GetIq();

            InGame = new ConclusionAboutGame(AmountPlaeyr, controler.IndexPlayer(Name), controler.TwojeKarty);
            InGame.Active(true);
            List <Karta> SnedCard = iq.GetWorstCard(controler.TwojeKarty, AmountPlaeyr);
            await controler.WysyłanieMuskuAsync(SnedCard);

            int j = 0;

            for (int i = 0; i < AmountPlaeyr; i++)
            {
                if (i != controler.IndexPlayer(Name))
                {
                    InGame.TransferedCard(SnedCard[j++], i);
                }
            }
        }
Пример #10
0
 private async void Controler_TwojaLicytacjaEv(object sender, EventArgs e)
 {
     IQ1000Game          iq  = GetIq();
     ConclusionAboutGame CAG = new ConclusionAboutGame(AmountPlaeyr, controler.IndexPlayer(Name), controler.TwojeKarty);
     await controler.LicytujAsync(BindSum = GetIq().CalculateBidAmount(CAG));
 }