我正在尝试实现一个功能,其中我有 2 个玩家,他们的收益取决于他们的行为。
def game(action1,action2):
if action1 == "a" and action2 == "a":
payoff1 = 1
payoff2 = 1
elif action1 == "a" and action2 == "b":
payoff1 = -5
payoff2 = 3
elif action1 == "b" and action2 == "a":
payoff1 = 3
payoff2 = -5
elif action1 == "b" and action2 == "b":
payoff1 = 2
payoff2 = 2
return payoff1 , payoff2
然后我会有这个游戏的策略(示例):
def TitForTat(round_num, previous_action):
if round_num == 0:
action = "a"
else:
action = previous_action
return action
def AlwaysDefect():
return "b"
action1 = TitForTat (0,'c')
action2 = AlwaysDefect()
game (action1,action2)
这将返回一个错误:
local variable 'payoff1' referenced before assignment
我试图将它们初始化为 "0" ,但相同。如果我有所有正值,那么确切的函数效果很好。
编辑:
很抱歉打字错误。并且函数 AlwaysDefect() 返回“b”和“d”。
PIPIONE
德玛西亚99
慕标琳琳
相关分类