コード例 #1
0
ファイル: Sorting.cs プロジェクト: obstrel/Kozel
 public void Case2()
 {
     Kozel.Card card1 = new Kozel.Card(Kozel.CardSuit.Club, Kozel.CardValue.Ace);
     Kozel.Card card2 = new Kozel.Card(Kozel.CardSuit.Diamond, Kozel.CardValue.Six);
     card2.IsTrump = true;
     Assert.IsTrue(card2.GetHashCode() > card1.GetHashCode());
 }
コード例 #2
0
ファイル: Sorting.cs プロジェクト: obstrel/Kozel
 public void Case2()
 {
     Kozel.Card card1 = new Kozel.Card(Kozel.CardSuit.Club, Kozel.CardValue.Ace);
     Kozel.Card card2 = new Kozel.Card(Kozel.CardSuit.Diamond, Kozel.CardValue.Six);
     card2.IsTrump = true;
     Assert.IsTrue(card2.GetHashCode() > card1.GetHashCode());
 }
コード例 #3
0
ファイル: Sorting.cs プロジェクト: obstrel/Kozel
        public void CanThrowCard()
        {
            Player p1    = new Player();
            Player p2    = new Player();
            Player p3    = new Player();
            Player p4    = new Player();
            Team   team1 = new Team(p1, p3);
            Team   team2 = new Team(p2, p4);
            Round  round = new Round(new ObservableCollection <Player>()
            {
                p1, p2, p3, p4
            });

            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.Six);

            p1.AddCard(card1);
            p2.AddCard(card2);
            p3.AddCard(card3);
            p4.AddCard(card4);
            round.Trick.AddMove(card1, p1);
            round.Trick.AddMove(card2, p2);
            round.Trick.AddMove(card3, p3);
            // round.Trick.AddMove(card4, p4);
            Assert.IsTrue(round.CanThrowCard(p4, card1));
        }
コード例 #4
0
ファイル: Round.cs プロジェクト: obstrel/Kozel
        public void NextMove(Card card)
        {
            card = card == null ? ActivePlayer.ThrowCard() : ActivePlayer.ThrowCard(card);
            AddCardToTrick(ActivePlayer, card);
            if (!finishing) {
                activePlayer = activePlayer < 3 ? activePlayer + 1 : 0;

                if (ActivePlayerChanged != null && trick.Cards.Count != 4) {
                    ActivePlayerChanged(this, new PlayerEventArgs(ActivePlayer));
                }
                if (trick.Cards.Count == 4) {
                    if (ActivePlayerChanged != null) {
                        ActivePlayerChanged(this, new PlayerEventArgs(null));
                    }
                    SetTrickOwner();
                    if (RoundFinished != null) {
                        RoundFinished(this, new RoundFinishedEventArgs(trick.GetTrickWinner(), trick.Owner));
                    }
                }
                else {
                    if(ActivePlayer.IsAI) {
                        NextMove();
                    }
                }
            }
        }
コード例 #5
0
ファイル: MainWindow.xaml.cs プロジェクト: obstrel/Kozel
        private Label CreateLabel(Card card)
        {
            Label label = new Label();
            label.Content = card.Value + " " + card.Suit;
            label.BorderThickness = new Thickness(1, 1, 1, 1);
            label.BorderBrush = Brushes.Black;
            label.Tag = card;
            //            label.MouseMove += Label_MouseMove;
            label.FontSize = 8;

            return label;
        }
コード例 #6
0
ファイル: Trick.cs プロジェクト: obstrel/Kozel
 public void AddMove(Card card, Player player)
 {
     moves.Add(card, player);
     if (Cards.Exists(c => { return c.isShoha(); }) && Cards.Exists(c => { return c.isClubQueen(); })) {
         Card shoha = Cards.Find(c => { return c.isShoha(); });
         Card clubQueen = Cards.Find(c => { return c.isClubQueen(); });
         if (moves[shoha].Team != moves[clubQueen].Team) {
             if (ShohaCatchQueen != null) {
                 ShohaCatchQueen(this, new ShohaCatchQueenEventArgs(moves[shoha]));
             }
         }
     }
 }
コード例 #7
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);
 }
コード例 #8
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);
        }
コード例 #9
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);
        }
コード例 #10
0
ファイル: Sorting.cs プロジェクト: obstrel/Kozel
        public void TrickOwnerSuitWithoutTrump()
        {
            Kozel.Card card1 = new Kozel.Card(Kozel.CardSuit.Diamond, Kozel.CardValue.Eight);
            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.Diamond, Kozel.CardValue.Nine);
            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(), p4);
        }
コード例 #11
0
ファイル: Sorting.cs プロジェクト: obstrel/Kozel
        public void TrickOwnerPermTrump()
        {
            Kozel.Card card1 = new Kozel.Card(Kozel.CardSuit.Club, Kozel.CardValue.Queen);
            Kozel.Card card2 = new Kozel.Card(Kozel.CardSuit.Diamond, Kozel.CardValue.Jack);
            Kozel.Card card3 = new Kozel.Card(Kozel.CardSuit.Club, Kozel.CardValue.Ace);
            Kozel.Card card4 = new Kozel.Card(Kozel.CardSuit.Spade, Kozel.CardValue.Queen);
            card3.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(), p1);
        }
コード例 #12
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;
        }
コード例 #13
0
ファイル: Sorting.cs プロジェクト: obstrel/Kozel
        public void CanThrowCard()
        {
            Player p1 = new Player();
            Player p2 = new Player();
            Player p3 = new Player();
            Player p4 = new Player();
            Team team1 = new Team(p1, p3);
            Team team2 = new Team(p2, p4);
            Round round = new Round(new ObservableCollection<Player>() { p1, p2, p3, p4 });
            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.Six);

            p1.AddCard(card1);
            p2.AddCard(card2);
            p3.AddCard(card3);
            p4.AddCard(card4);
            round.Trick.AddMove(card1, p1);
            round.Trick.AddMove(card2, p2);
            round.Trick.AddMove(card3, p3);
            // round.Trick.AddMove(card4, p4);
            Assert.IsTrue(round.CanThrowCard(p4, card1));
        }
コード例 #14
0
ファイル: Sorting.cs プロジェクト: obstrel/Kozel
 public void PermTrump()
 {
     Kozel.Card card1 = new Kozel.Card(Kozel.CardSuit.Diamond, Kozel.CardValue.Jack);
     Kozel.Card card2 = new Kozel.Card(Kozel.CardSuit.Club, Kozel.CardValue.Ace);
     Assert.IsTrue(card2.GetHashCode() < card1.GetHashCode());
 }
コード例 #15
0
ファイル: Player.cs プロジェクト: obstrel/Kozel
 public void AddCard(Card card)
 {
     cards.Add(card);
     //    SortCards();
 }
コード例 #16
0
ファイル: Player.cs プロジェクト: obstrel/Kozel
 public Card ThrowCard(Card card)
 {
     cards.Remove(card);
     if (PlayerMadeMove != null)
         PlayerMadeMove(this, new PlayerMadeMoveEventArgs(this, card));
     return card;
 }
コード例 #17
0
ファイル: Sorting.cs プロジェクト: obstrel/Kozel
 public void SameSuite()
 {
     Kozel.Card card1 = new Kozel.Card(Kozel.CardSuit.Club, Kozel.CardValue.Eight);
     Kozel.Card card2 = new Kozel.Card(Kozel.CardSuit.Club, Kozel.CardValue.Ten);
     Assert.IsTrue(card2.GetHashCode() > card1.GetHashCode());
 }
コード例 #18
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);
 }
コード例 #19
0
ファイル: Sorting.cs プロジェクト: obstrel/Kozel
 public void PermTrump()
 {
     Kozel.Card card1 = new Kozel.Card(Kozel.CardSuit.Diamond, Kozel.CardValue.Jack);
     Kozel.Card card2 = new Kozel.Card(Kozel.CardSuit.Club, Kozel.CardValue.Ace);
     Assert.IsTrue(card2.GetHashCode() < card1.GetHashCode());
 }
コード例 #20
0
ファイル: Sorting.cs プロジェクト: obstrel/Kozel
 public void ShohaIsTop()
 {
     Kozel.Card card1 = new Kozel.Card(Kozel.CardSuit.Club, Kozel.CardValue.Six);
     Kozel.Card card2 = new Kozel.Card(Kozel.CardSuit.Club, Kozel.CardValue.Queen);
     Assert.IsTrue(card2.GetHashCode() < card1.GetHashCode());
 }
コード例 #21
0
ファイル: Sorting.cs プロジェクト: obstrel/Kozel
 public void ShohaIsTop()
 {
     Kozel.Card card1 = new Kozel.Card(Kozel.CardSuit.Club, Kozel.CardValue.Six);
     Kozel.Card card2 = new Kozel.Card(Kozel.CardSuit.Club, Kozel.CardValue.Queen);
     Assert.IsTrue(card2.GetHashCode() < card1.GetHashCode());
 }
コード例 #22
0
ファイル: Sorting.cs プロジェクト: obstrel/Kozel
 public void SameSuite()
 {
     Kozel.Card card1 = new Kozel.Card(Kozel.CardSuit.Club, Kozel.CardValue.Eight);
     Kozel.Card card2 = new Kozel.Card(Kozel.CardSuit.Club, Kozel.CardValue.Ten);
     Assert.IsTrue(card2.GetHashCode() > card1.GetHashCode());
 }
コード例 #23
0
ファイル: Round.cs プロジェクト: obstrel/Kozel
 private void AddCardToTrick(Player player, Card card)
 {
     trick.AddMove(card, player);
 }
コード例 #24
0
ファイル: Round.cs プロジェクト: obstrel/Kozel
 public bool CanThrowCard(Player player, Card card)
 {
     return player.CanThrowCard(trick, card);
 }
コード例 #25
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);
 }