示例#1
0
        public List <Karta> GetValidCards(List <Karta> ls, StateGame1000 s)
        {
            int[]        max = BasicTools.InitializeTable(4, ValueIfCardsDontExist);
            List <Karta> zw  = new List <Karta>(ls.Count);

            GetMinCards(max, ls);
            zw.AddRange(IntToCard(max));
            return(zw);
        }
示例#2
0
        public void LoadMove_CaseFirstCard()
        {
            StateGame1000 a = new StateGame1000(3);

            a.cards.First().AddRange(new GraKarciana.Karta[] { GraKarciana.Karta.As, GraKarciana.Karta.Dupek, GraKarciana.Karta.Dama });
            var z = a.GetMove(GraKarciana.Karta.As);

            Assert.IsFalse(z.Item2.cards.First().Contains(GraKarciana.Karta.As));
            Assert.IsFalse(z.Item1.Marriage);
        }
示例#3
0
        public void RateGame()
        {
            StateGame1000 s = new StateGame1000(3);

            s.scoreInCurentGame[0] = 500;
            s.scoreInCurentGame[1] = 100;
            s.scoreInCurentGame[2] = 100;
            Assert.IsTrue(s.RateStates(0) > 0);
            Assert.IsTrue(s.RateStates(1) < 0);
        }
示例#4
0
        public void LoadMove_CaseMariage()
        {
            StateGame1000 a = new StateGame1000(3);

            a.cards.First().AddRange(new GraKarciana.Karta[] { GraKarciana.Karta.Dama, GraKarciana.Karta.As, GraKarciana.Karta.Król });
            var z = a.GetMove(GraKarciana.Karta.Dama);

            Assert.IsFalse(z.Item2.cards.First().Contains(GraKarciana.Karta.Dama));
            Assert.IsTrue(z.Item1.Marriage);
            Assert.AreEqual(z.Item2.scoreInCurentGame[0], 60);
        }
示例#5
0
        public void GetMove()
        {
            StateGame1000 s = new StateGame1000(3);

            s.cards[1].AddRange(new GraKarciana.Karta[] { GraKarciana.Karta.As, GraKarciana.Karta.Dupek, GraKarciana.Karta.Dama });
            s.Player = 1;
            int CountBeforeAction = s.cards[1].Count;
            var result            = s.GetMove(GraKarciana.Karta.Dama);

            Assert.AreEqual(CountBeforeAction, s.cards[1].Count);
            Assert.AreEqual(CountBeforeAction - 1, result.Item2.cards[1].Count);
        }
示例#6
0
        public void LoadMove_CaseClearTable()
        {
            StateGame1000 a = new StateGame1000(3);

            a.Player = 2;
            a.cards.First().AddRange(new GraKarciana.Karta[] { GraKarciana.Karta.Dama, GraKarciana.Karta.As, GraKarciana.Karta.Król });
            a = a.SetTable(new GraKarciana.Karta[] { GraKarciana.Karta.K9, GraKarciana.Karta.K10 });
            var z = a.GetMove(GraKarciana.Karta.As);

            Assert.AreEqual(z.Item2.Player, 2);
            Assert.AreEqual(z.Item2.scoreInCurentGame[2], 21);
            Assert.AreEqual(z.Item2.NumberCardInTable, 0);
        }
示例#7
0
        public void TestEquals()
        {
            StateGame1000 s = new StateGame1000(3);
            StateGame1000 z = new StateGame1000(3);
            StateGame1000 a = new StateGame1000(3);

            s.cards.First().AddRange(new GraKarciana.Karta[] { GraKarciana.Karta.As, GraKarciana.Karta.Dupek });
            z.cards.First().AddRange(new GraKarciana.Karta[] { GraKarciana.Karta.Dupek, GraKarciana.Karta.As });
            a.cards.First().AddRange(new GraKarciana.Karta[] { GraKarciana.Karta.Dupek, GraKarciana.Karta.As });
            a.Player = 1;
            Assert.AreNotEqual(a, z);
            Assert.AreEqual(s, z);
            Assert.AreNotEqual(a.GetHashCode(), z.GetHashCode());
            Assert.AreEqual(s.GetHashCode(), z.GetHashCode());
        }
示例#8
0
        public void GetState()
        {
            StateGame1000 a = new StateGame1000(3);
            {
                a.cards.First().AddRange(new GraKarciana.Karta[] { GraKarciana.Karta.As, GraKarciana.Karta.Dupek, GraKarciana.Karta.Król });
                var z = a.GetStates();

                if (StateGame1000.defineRoleconst.Any(X => (X  is Karty.Tysiąc.IqDefineRole.RoleFirstCardIsMax)))
                {
                    Assert.AreEqual(1, z.Count);
                }
                else
                {
                    Assert.AreEqual(3, z.Count);
                }
                Assert.AreEqual(2, z.First().Item2.cards.First().Count);
            }
        }
示例#9
0
        public List <Karta> GetValidCards(List <Karta> ls, StateGame1000 s)
        {
            List <Karta> cardsSymulate  = new List <Karta>();
            int          moveToEndQueue = s.amountPlayer - s.NumberCardInTable;

            for (int i = 0; i < moveToEndQueue; i++)
            {
                cardsSymulate.AddRange(s.cards[(i + s.Player) % s.amountPlayer]);
            }
            cardsSymulate.AddRange(s.GetCardInTable());
            cardsSymulate.Sort(ComparerTysioc.GetComparer(s.cardOnTable.First(), s.EnebleKozera, s.Kozera));
            Karta maxCard = cardsSymulate.Last();

            if (ls.Any(X => X == maxCard))
            {
                return(new List <Karta>()
                {
                    maxCard
                });
            }
            {
                return(ls);
            }
        }
示例#10
0
 public bool IsContext(StateGame1000 s, ResultMoveGame mk) => ((s.NumberCardInTable != 0) && mk == ResultMoveGame.Lose || (mk == ResultMoveGame.Win && (s.NumberCardInTable + 1 == s.amountPlayer)));
示例#11
0
 public bool IsContext(StateGame1000 s, ResultMoveGame mk) => (s.NumberCardInTable == 0);
示例#12
0
 public bool IsContext(StateGame1000 s, ResultMoveGame mk) => mk == ResultMoveGame.Win;