private CompareResult Draw2CardsAndFight(Fighter host, Fighter guest) { var excluded = new List <Card>(); excluded.AddRange(host.Holes); excluded.AddRange(guest.Holes); excluded.AddRange(_flops); var allCards = Utils.GenerateAllCards().Except(excluded).ToArray(); var twoCardsCombinations = Utils.Enumerate(allCards, 0, 2); var compareResult = new CompareResult(0, 0, 0); foreach (var twoCardsCombination in twoCardsCombinations) { var communityCards = new List <Card>(); communityCards.AddRange(_flops); communityCards.AddRange(twoCardsCombination); var battleSetup = new BattleSetup(communityCards); compareResult.Add(FightBattleSetup(host, guest, battleSetup)); } return(compareResult); }
public CompareResult Evaluate() { var possibleGuestFighters = EnumerateGuestFighters(); var compareResult = new CompareResult(0, 0, 0); foreach (var guestFighter in possibleGuestFighters) { var battleGround = new BattleGround(); if (Flops != null) { battleGround.SetFlops(Flops); } if (Turn != null) { battleGround.SetTurn(Turn); } if (River != null) { battleGround.SetRiver(River); } compareResult.Add(battleGround.Fight(HostFighter, guestFighter)); } return(compareResult); }
private CompareResult Draw1CardAndFight(Fighter host, Fighter guest) { var excluded = new List <Card>(); excluded.AddRange(host.Holes); excluded.AddRange(guest.Holes); excluded.AddRange(_flops); excluded.Add(_turn); var allCards = Utils.GenerateAllCards().Except(excluded).ToArray(); var compareResult = new CompareResult(0, 0, 0); foreach (var river in allCards) { var communityCards = new List <Card>(); communityCards.AddRange(_flops); communityCards.Add(_turn); communityCards.Add(river); var battleSetup = new BattleSetup(communityCards); compareResult.Add(FightBattleSetup(host, guest, battleSetup)); } return(compareResult); }