本文整理汇总了C#中Deck.Enqueue方法的典型用法代码示例。如果您正苦于以下问题:C# Deck.Enqueue方法的具体用法?C# Deck.Enqueue怎么用?C# Deck.Enqueue使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Deck
的用法示例。
在下文中一共展示了Deck.Enqueue方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: LoadCommunityChestDeck
public void LoadCommunityChestDeck()
{
CommunityChest = new Deck();
CommunityChest.Enqueue(new Card(DeckType.CommunityChest, actor =>
{
actor.Tell("Advance Directly to Go");
actor.MoveTo<GoSpace>();
}));
CommunityChest.Enqueue(new Card(DeckType.CommunityChest, actor =>
{
actor.Tell("Bank error in your favor - collect $200");
actor.ModifyCapital(200);
}));
CommunityChest.Enqueue(new Card(DeckType.CommunityChest, actor =>
{
actor.Tell("Doctor's fee - pay $50");
actor.Charge(50);
}));
CommunityChest.Enqueue(new GetOutOfJailCard(DeckType.CommunityChest, actor => actor.Tell("Get out of jail free; you can keep this card until you need it")));
CommunityChest.Enqueue(new Card(DeckType.CommunityChest, actor =>
{
actor.Tell("Go directly to jail.");
actor.MoveTo<JailSpace>();
}));
CommunityChest.Enqueue(new Card(DeckType.CommunityChest, actor =>
{
actor.Tell("Opera night; collect $50 from everyone else");
actor.ModifyCapital(actor.PlayingGame.Players.Select(p => p == actor ? 0 : p.Charge(50)).Sum());
}));
CommunityChest.Enqueue(new Card(DeckType.CommunityChest, actor =>
{
actor.Tell("Holiday fund matures - collect $100");
actor.ModifyCapital(100);
}));
CommunityChest.Enqueue(new Card(DeckType.CommunityChest, actor =>
{
actor.Tell("Income tax refund; collect $20");
actor.ModifyCapital(20);
}));
CommunityChest.Enqueue(new Card(DeckType.CommunityChest, actor =>
{
actor.Tell("It's your birthday; collect $10 from all other players");
actor.ModifyCapital(actor.PlayingGame.Players.Select(p => p == actor ? 0 : p.Charge(10)).Sum());
}));
CommunityChest.Enqueue(new Card(DeckType.CommunityChest, actor =>
{
actor.Tell("Life Insurance matures - collect $100");
actor.ModifyCapital(100);
}));
CommunityChest.Enqueue(new Card(DeckType.CommunityChest, actor =>
{
actor.Tell("Play hostpital fees of $100");
actor.Charge(100);
}));
CommunityChest.Enqueue(new Card(DeckType.CommunityChest, actor =>
{
actor.Tell("Play school fees of $150");
actor.Charge(150);
}));
CommunityChest.Enqueue(new Card(DeckType.CommunityChest, actor =>
{
actor.Tell("Recieve $25 consultancy fee");
actor.ModifyCapital(25);
}));
CommunityChest.Enqueue(new Card(DeckType.CommunityChest, actor =>
{
actor.Tell("You have won second place in a beauty contest; collect $10");
actor.ModifyCapital(10);
}));
CommunityChest.Enqueue(new Card(DeckType.CommunityChest, actor =>
{
actor.Tell("You inherit $100");
actor.ModifyCapital(100);
}));
CommunityChest.Enqueue(new Card(DeckType.CommunityChest, actor =>
{
int amount = Util.FilterSubclass<Property, ColoredProperty>(actor.GetProperties()).Select(p => p.Houses > 4 ? 115 : p.Houses * 40).Sum();
if (amount > 0)
{
actor.Tell($"You are assesed for street repairs, and require a payment of ${amount}");
actor.Charge(amount);
}
else
{
actor.Tell("You are assesed for street repairs, but are not deemed applicable for payment. You pay nothing.");
}
}));
}
示例2: LoadChanceDeck
public void LoadChanceDeck()
{
Chance = new Deck();
Chance.Enqueue(new Card(DeckType.Chance, actor =>
{
actor.Tell("Advance Directly to Go");
actor.MoveTo<GoSpace>();
}));
Chance.Enqueue(new Card(DeckType.Chance, actor =>
{
actor.Tell("Advance to Illinois Ave");
actor.MoveTo(s => s is PropertySpace && (s as PropertySpace).GetProperties().Single().Name == "Illinois Avenue");
actor.PlayingGame.GameBoard[actor.BoardPosition].Land(actor);
}));
Chance.Enqueue(new Card(DeckType.Chance, actor =>
{
actor.Tell("Advance to St. Charles Place");
actor.MoveTo(s => s is PropertySpace && (s as PropertySpace).GetProperties().Single().Name == "St. Charles Place");
actor.PlayingGame.GameBoard[actor.BoardPosition].Land(actor);
}));
Chance.Enqueue(new Card(DeckType.Chance, actor =>
{
actor.Tell("Advance to the nearest utility and pay the owner 10 times the amount of a dice roll");
actor.MoveTo(s => s is PropertySpace && (s as PropertySpace).GetProperties().Single() is UtilityProperty);
UtilityProperty utility = (actor.PlayingGame.GameBoard[actor.BoardPosition] as PropertySpace).GetProperties().Single() as UtilityProperty;
if (utility.Owner is Player)
{
utility.Owner.ModifyCapital(actor.Charge(10 * Dice.Roll()));
}
else
actor.PlayingGame.GameBoard[actor.BoardPosition].Land(actor);
}));
Chance.Enqueue(new Card(DeckType.Chance, actor =>
{
actor.Tell("Advance token to the nearest Railroad and pay owner twice the rental to which he/she is otherwise entitled");
actor.MoveTo(s => s is PropertySpace && (s as PropertySpace).GetProperties().Single() is StationProperty);
StationProperty station = (actor.PlayingGame.GameBoard[actor.BoardPosition] as PropertySpace).GetProperties().Single() as StationProperty;
if (station.Owner is Player)
{
station.Owner.ModifyCapital(actor.Charge(2 * station.GetRent(actor)));
}
else
station.PlayingGame.GameBoard[actor.BoardPosition].Land(actor);
}));
Chance.Enqueue(new Card(DeckType.Chance, actor =>
{
actor.Tell("Bank pays you dividend of $50");
actor.ModifyCapital(50);
}));
Chance.Enqueue(new GetOutOfJailCard(DeckType.Chance, actor => actor.Tell("Get out of Jail Free – This card may be kept until needed, or traded/sold")));
Chance.Enqueue(new Card(DeckType.Chance, actor =>
{
actor.Tell("Go back 3 spaces");
actor.BoardPosition = (actor.BoardPosition - 3) % actor.PlayingGame.GameBoard.Count;
actor.PlayingGame.GameBoard[actor.BoardPosition].Land(actor);
}));
Chance.Enqueue(new Card(DeckType.Chance, actor =>
{
actor.Tell("Go directly to jail; do not pass go, do not collect $200");
actor.SendToJail();
}));
Chance.Enqueue(new Card(DeckType.Chance, actor =>
{
int amount = Util.FilterSubclass<Property, ColoredProperty>(actor.GetProperties()).Select(p => p.Houses > 4 ? 100 : p.Houses * 25).Sum();
if (amount > 0)
{
actor.Tell($"You make general repairs on all of your properties, and end up paying ${amount}");
actor.Charge(amount);
}
else
{
actor.Tell("You asses the need to make general repairs on any of your properties, but decide it is not necessary. You pay nothing.");
}
}));
Chance.Enqueue(new Card(DeckType.Chance, actor =>
{
actor.Tell("Pay poor tax of $15");
actor.Charge(15);
}));
Chance.Enqueue(new Card(DeckType.Chance, actor =>
{
actor.Tell("Take a trip to Reading Railroad");
actor.MoveTo(s => s is PropertySpace && (s as PropertySpace).GetProperties().Single().Name == "Reading Railroad");
actor.PlayingGame.GameBoard[actor.BoardPosition].Land(actor);
}));
Chance.Enqueue(new Card(DeckType.Chance, actor =>
{
actor.Tell("Take a walk on the Boardwalk - advance to Boardwalk");
actor.MoveTo(s => s is PropertySpace && (s as PropertySpace).GetProperties().Single().Name == "Boardwalk");
actor.PlayingGame.GameBoard[actor.BoardPosition].Land(actor);
}));
Chance.Enqueue(new Card(DeckType.Chance, actor =>
{
actor.Tell("You have been elected Chairman of the Board; you pay each other player $50");
actor.PlayingGame.Players.Where(p => p != actor).ToList().ForEach(p => p.ModifyCapital(actor.Charge(50)));
}));
Chance.Enqueue(new Card(DeckType.Chance, actor =>
{
actor.Tell("Your building loan matures; collect $150");
//.........这里部分代码省略.........