示例#1
0
文件: Player.cs 项目: obstrel/Kozel
        public bool CanThrowCard(Trick trick, Card card)
        {
            if (ai != null && ai.Trick == null)
            {
                ai.Trick = trick;
            }

            if (trick.Cards.Count == 0)
            {
                if (!Team.Trumped && Cards.Exists(c => { return(!c.IsTrump); }) && Cards.Exists(c => { return(!c.IsTrump); }) && card.IsTrump)
                {
                    return(false);
                }
                return(true);
            }
            if (trick.Cards[0].IsTrump)
            {
                if (Cards.Exists(c => { return(c.IsTrump); }) && !card.IsTrump)
                {
                    return(false);
                }
                return(true);
            }
            if (Cards.Exists(c => { return(c.Suit == trick.Cards[0].Suit && !c.IsTrump); }) && (card.Suit != trick.Cards[0].Suit || card.IsTrump))
            {
                return(false);
            }
            return(true);
        }
示例#2
0
文件: Player.cs 项目: obstrel/Kozel
        public bool CanThrowCard(Trick trick, Card card)
        {
            if (ai != null && ai.Trick == null) {
                ai.Trick = trick;
            }

            if (trick.Cards.Count == 0) {
                if (!Team.Trumped && Cards.Exists(c => { return !c.IsTrump; }) && Cards.Exists(c => { return !c.IsTrump; }) && card.IsTrump) {
                    return false;
                }
                return true;
            }
            if (trick.Cards[0].IsTrump) {
                if (Cards.Exists(c => { return c.IsTrump; }) && !card.IsTrump) {
                    return false;
                }
                return true;
            }
            if (Cards.Exists(c => { return c.Suit == trick.Cards[0].Suit && !c.IsTrump; }) && (card.Suit != trick.Cards[0].Suit || card.IsTrump)) {
                return false;
            }
            return true;
        }
示例#3
0
 public void AddTrick(Trick trick)
 {
     tricks.Add(trick);
 }
示例#4
0
文件: Team.cs 项目: obstrel/Kozel
 public void AddTrick(Trick trick)
 {
     tricks.Add(trick);
 }
示例#5
0
文件: Sorting.cs 项目: obstrel/Kozel
 public void TrickOwnerOneSuit()
 {
     Kozel.Card card1 = new Kozel.Card(Kozel.CardSuit.Club, Kozel.CardValue.Eight);
     Kozel.Card card2 = new Kozel.Card(Kozel.CardSuit.Club, Kozel.CardValue.Ten);
     Kozel.Card card3 = new Kozel.Card(Kozel.CardSuit.Club, Kozel.CardValue.Ace);
     Kozel.Card card4 = new Kozel.Card(Kozel.CardSuit.Club, Kozel.CardValue.King);
     Player p1 = new Player();
     Player p2 = new Player();
     Player p3 = new Player();
     Player p4 = new Player();
     Trick t = new Trick();
     t.AddMove(card1, p1);
     t.AddMove(card2, p2);
     t.AddMove(card3, p3);
     t.AddMove(card4, p4);
     Assert.AreEqual(t.GetTrickWinner(), p3);
 }
示例#6
0
文件: Sorting.cs 项目: obstrel/Kozel
 public void TrickOwnerWithTrump()
 {
     Kozel.Card card1 = new Kozel.Card(Kozel.CardSuit.Club, Kozel.CardValue.Ace);
     Kozel.Card card2 = new Kozel.Card(Kozel.CardSuit.Diamond, Kozel.CardValue.Eight);
     Kozel.Card card3 = new Kozel.Card(Kozel.CardSuit.Spade, Kozel.CardValue.Ten);
     Kozel.Card card4 = new Kozel.Card(Kozel.CardSuit.Heart, Kozel.CardValue.Eight);
     card2.IsTrump = true;
     Player p1 = new Player();
     Player p2 = new Player();
     Player p3 = new Player();
     Player p4 = new Player();
     Trick t = new Trick();
     t.AddMove(card1, p1);
     t.AddMove(card2, p2);
     t.AddMove(card3, p3);
     t.AddMove(card4, p4);
     Assert.AreEqual(t.GetTrickWinner(), p2);
 }
示例#7
0
文件: Sorting.cs 项目: obstrel/Kozel
 public void TrickOwnerSmallestSuit()
 {
     Kozel.Card card1 = new Kozel.Card(Kozel.CardSuit.Diamond, Kozel.CardValue.Six);
     Kozel.Card card2 = new Kozel.Card(Kozel.CardSuit.Spade, Kozel.CardValue.Ace);
     Kozel.Card card3 = new Kozel.Card(Kozel.CardSuit.Club, Kozel.CardValue.Ace);
     Kozel.Card card4 = new Kozel.Card(Kozel.CardSuit.Heart, Kozel.CardValue.Ace);
     Player p1 = new Player();
     Player p2 = new Player();
     Player p3 = new Player();
     Player p4 = new Player();
     Trick t = new Trick();
     t.AddMove(card1, p1);
     t.AddMove(card2, p2);
     t.AddMove(card3, p3);
     t.AddMove(card4, p4);
     Assert.AreEqual(t.GetTrickWinner(), p1);
 }