本文整理汇总了C#中Deck.GetSimulatedDeck方法的典型用法代码示例。如果您正苦于以下问题:C# Deck.GetSimulatedDeck方法的具体用法?C# Deck.GetSimulatedDeck怎么用?C# Deck.GetSimulatedDeck使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Deck
的用法示例。
在下文中一共展示了Deck.GetSimulatedDeck方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Simulate
private static double Simulate(ArrayList ownHand, ArrayList board,
ArrayList opponentHands, Deck deck)
{
SimulatedDeck simulatedDeck = deck.GetSimulatedDeck();
simulatedDeck.Shuffle();
foreach (Card card in ownHand){
simulatedDeck.RemoveCard(card);
}
foreach (Card card in board){
simulatedDeck.RemoveCard(card);
}
foreach (ArrayList opponentHand in opponentHands){
foreach (Card card in opponentHand){
simulatedDeck.RemoveCard(card);
}
}
ArrayList simulatedBoard = new ArrayList(board);
while (simulatedBoard.Count < 5){
simulatedBoard.Add(simulatedDeck.Draw());
}
ArrayList simulatedOpponentHands = new ArrayList();
foreach (ArrayList opponentHand in opponentHands){
ArrayList simulatedOpponentHand = new ArrayList(opponentHand);
simulatedOpponentHands.Add(simulatedOpponentHand);
while (simulatedOpponentHand.Count < 2){
simulatedOpponentHand.Add(simulatedDeck.Draw());
}
}
EvaluatedHand ownEvaluatedHand = HandEvaluator.EvaluateHand(ownHand,
simulatedBoard);
ArrayList opponentEvaluatedHands = new ArrayList();
foreach (ArrayList simulatedOpponentHand in simulatedOpponentHands){
opponentEvaluatedHands.Add(HandEvaluator.EvaluateHand(simulatedOpponentHand, simulatedBoard));
}
EvaluatedHand bestOpponentEvaluatedHand = null;
foreach (EvaluatedHand opponentEvaluatedHand in opponentEvaluatedHands){
if (bestOpponentEvaluatedHand == null ||
opponentEvaluatedHand.CompareTo(bestOpponentEvaluatedHand) > 0){
bestOpponentEvaluatedHand = opponentEvaluatedHand;
}
}
int comparison = ownEvaluatedHand.CompareTo(bestOpponentEvaluatedHand);
if (comparison > 0){
return 1.0;
} else if (comparison == 0){
return 0.5;
} else {
return 0.0;
}
}