本文整理汇总了C#中IPlayer.PlayCard方法的典型用法代码示例。如果您正苦于以下问题:C# IPlayer.PlayCard方法的具体用法?C# IPlayer.PlayCard怎么用?C# IPlayer.PlayCard使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IPlayer
的用法示例。
在下文中一共展示了IPlayer.PlayCard方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: PlayCard
private PlayAction PlayCard(IPlayer player, Contract contract, IList<Card> currentTrickCards)
{
// Prepare played cards and allowed cards
var currentPlayerCards = this.playerCards[(int)this.game[player]];
var allowedCards = new CardsCollection(currentPlayerCards.GetAllowedCards(contract, currentTrickCards));
// Play card
var playAction = player.PlayCard(allowedCards.ToList(), currentTrickCards.ToList());
// Check for invalid card
if (!allowedCards.Contains(playAction.Card))
{
throw new InvalidPlayerActionException(player, string.Format("Invalid card: {0}", playAction.Card));
}
// Save belote to team points
playAction.Belote = false;
if (playAction.AnnounceBeloteIfAvailable && currentPlayerCards.IsBeloteAllowed(contract, currentTrickCards, playAction.Card))
{
switch (this.game[player])
{
case PlayerPosition.South:
this.southNorthBelotes++;
break;
case PlayerPosition.East:
this.eastWestBelotes++;
break;
case PlayerPosition.North:
this.southNorthBelotes++;
break;
case PlayerPosition.West:
this.eastWestBelotes++;
break;
}
playAction.Belote = true;
}
// Remove played card from the players cards
this.playerCards[(int)this.game[player]].Remove(playAction.Card);
return playAction;
}