Exemplo n.º 1
0
 public void PlayCard(Player player, Card card)
 {
     // move card to Skat
     if (GamePlayer == player && SkatTaken && !GameStarted)
     {
         if (Skat.Count < 2)
         {
             player.Cards.Remove(card);
             Skat.Add(card);
         }
     }
     else if (GameStarted && CurrentPlayer == player)
     {
         if (Stitch.Count == 3)
         {
             CollectStitch(player);
             if (player.Cards.Count == 0)
             {
                 return; // game ended
             }
         }
         if (IsValidForStitch(card))
         {
             player.Cards.Remove(card);
             CurrentPlayer = GetNextPlayer(player);
             Stitch.Add(card);
             if (Stitch.Count == 3)
             {
                 var stichPlayer = GetStitchPlayer();
                 stichPlayer.Stitches.AddRange(Stitch);
                 CurrentPlayer = stichPlayer;
             }
         }
     }
 }