make alliance dependant on role

This commit is contained in:
Barak Michener 2013-07-26 22:48:10 -04:00
parent 75be123a0b
commit 9a5e14b884

27
tim.py
View file

@ -23,31 +23,23 @@ class DeceptionGame(object):
self.player_alliance_vars = [] self.player_alliance_vars = []
self.player_role_vars = [] self.player_role_vars = []
self.role_ids = {} self.role_ids = {}
self.role_alliance = {}
i = 0 i = 0
for card in player_array: for card in player_array:
role, good = card role, good = card
self.role_ids[role] = i self.role_ids[role] = i
self.role_alliance[i] = good
i += 1 i += 1
def player_alliance(x, deck_var = self.deck_var): def player_alliance(x, role):
return self.all_permutations[deck_var][x][1] return self.role_alliance[role]
def player_role(x, deck_var = self.deck_var): def player_role(x, deck_var = self.deck_var):
role_str = self.all_permutations[deck_var][x][0] role_str = self.all_permutations[deck_var][x][0]
return self.role_ids[role_str] return self.role_ids[role_str]
for x in range(self.n_players): for x in range(self.n_players):
alliance = mc.Deterministic(eval = functools.partial(player_alliance, x),
name = "player_alliance_%d" % x,
parents = { "deck_var" : self.deck_var },
doc = "Is player %d good?" % x,
dtype = bool,
trace = True,
plot = False)
self.player_alliance_vars.append(alliance)
role = mc.Deterministic(eval = functools.partial(player_role, x), role = mc.Deterministic(eval = functools.partial(player_role, x),
name = "player_role_%d" % x, name = "player_role_%d" % x,
parents = { "deck_var" : self.deck_var }, parents = { "deck_var" : self.deck_var },
@ -56,6 +48,17 @@ class DeceptionGame(object):
trace = True, trace = True,
plot = False) plot = False)
self.player_role_vars.append(role) self.player_role_vars.append(role)
alliance = mc.Deterministic(eval = functools.partial(player_alliance, x),
name = "player_alliance_%d" % x,
parents = { "role" : role},
doc = "Is player %d good?" % x,
dtype = bool,
trace = True,
plot = False)
self.player_alliance_vars.append(alliance)
self.observations = [] self.observations = []
self.tid = 0 self.tid = 0