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()); }
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)); }
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(); } } } }
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; }
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])); } } } }
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); }
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); }
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); }
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); }
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; }
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)); }
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()); }
public void AddCard(Card card) { cards.Add(card); // SortCards(); }
public Card ThrowCard(Card card) { cards.Remove(card); if (PlayerMadeMove != null) PlayerMadeMove(this, new PlayerMadeMoveEventArgs(this, card)); return card; }
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()); }
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); }
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()); }
private void AddCardToTrick(Player player, Card card) { trick.AddMove(card, player); }
public bool CanThrowCard(Player player, Card card) { return player.CanThrowCard(trick, card); }