public string accuseRound() { Dictionary <String, int> possibleAccuses = infoSet.getPossibleAccuses(); for (int i = 0; i < Constants.N; i++) { List <PlayerNode> accuseSample = new List <PlayerNode>(); accuseSample.Add(new MaxNode(player.getPlayerName(), player.getCharName(), infoSet)); accuseSample.AddRange(infoSet.Sample(player.getCharName())); RolloutGame game; foreach (string possibleAccuse in infoSet.getPossibleAccuses().Keys) { List <PlayerNode> accuseSampleGame = accuseSample.Select(x => x.Copy()).ToList(); game = new RolloutGame(accuseSampleGame, General.GameStates.ACCUSE, player.getCharName()); possibleAccuses[possibleAccuse] += game.sampleGame(possibleAccuse); } } return(possibleAccuses.FirstOrDefault(x => x.Value == possibleAccuses.Values.Max()).Key); }
public string talkRound() { //Value of the talks, every one has a 0 value in the beginning. Dictionary <String, int> possibleTalks = infoSet.getPossibleTalks(); for (int i = 0; i < Constants.N; i++) { List <PlayerNode> accuseSample = new List <PlayerNode>(); accuseSample.Add(new MaxNode(player.getPlayerName(), player.getCharName(), infoSet)); accuseSample.AddRange(infoSet.Sample(player.getCharName())); RolloutGame game; List <String> possibleTalksCopy = new List <String>(possibleTalks.Keys); foreach (string possibleTalk in possibleTalksCopy) { List <PlayerNode> accuseSampleGame = accuseSample.Select(x => x.Copy()).ToList(); game = new RolloutGame(accuseSampleGame, General.GameStates.TALK, player.getCharName()); possibleTalks[possibleTalk] += game.sampleGame(possibleTalk); } } return(possibleTalks.FirstOrDefault(x => x.Value == possibleTalks.Values.Max()).Key); }