I'm attempting to write a program (as a personal project for fun) that calculates probability of the game Secret Hitler as it's being played. It's a party game that's based on social manipulation. It has players act as a government with 'liberals', 'secret fascists', and a 'secret Hitler'. The object of the game is to pass more policies for your party as the other or kill Hitler or put him into power. It's a lofty goal, but I'd like to create a program that calculates the probability of a player being fascist given only the policy/card played and is continually updated with this info as it's played. There are multiple rounds throughout the game. Each round the player next in the circle is selected as president and then he/she selects a chancellor. The president draws 3 cards, gives two to the chancellor , and the chancellor picks the final policy to be enacted, and then repeats until win conditions are met.
I've had the help of my prob/stats teacher, and he's initially suggested looking at it as a Bayesian belief network. I've mapped out the probabilities with heavy assumptions(ignoring social probability i.e. If a player is fascist, they will always pick or play a fascist card, down the line hopefully I can collect data to change this):
P(Policies Drawn)->P(President's two policies picked) -> P(Policy the chancellor picks) -> P(Policies Drawn Next Round) ->...
However, The final probability influences the initial so I'm not certain it's the right approach for a Bayesian network considering they are supposed to be acyclic. I've also looked at Markov networks, but from my understanding they are undirected. Does anyone have any suggestions of how I can model this, calculate the probability, or if there's any flaws in my current knowledge or understanding? Any resources or examples would be greatly appreciated and I can certainly provide any more info if needed.