@@ -185,80 +185,6 @@ def create_non_zero_sum_lacking_outcome_efg(missing_term_outcome: bool = False)
185185 return g
186186
187187
188- def create_large_payoff_game_efg () -> gbt .Game :
189- g = gbt .Game .new_tree (players = ["1" , "2" ], title = "Large payoff game" )
190- g .append_move (g .root , g .players .chance , ["L" , "R" ])
191- for i in range (2 ):
192- g .append_move (g .root .children [i ], "1" , ["A" , "B" ])
193- for i in range (2 ):
194- g .append_move (g .root .children [0 ].children [i ], "2" , ["X" , "Y" ])
195- g .append_infoset (g .root .children [1 ].children [i ], g .root .children [0 ].children [i ].infoset )
196- o_large = g .add_outcome ([10000000000000000000 , - 10000000000000000000 ], label = "large payoff" )
197- o_1 = g .add_outcome ([1 , - 1 ], label = "1" )
198- o_m1 = g .add_outcome ([- 1 , 1 ], label = "-1" )
199- o_zero = g .add_outcome ([0 , 0 ], label = "0" )
200- g .set_outcome (g .root .children [0 ].children [0 ].children [0 ], o_large )
201- g .set_outcome (g .root .children [0 ].children [0 ].children [1 ], o_1 )
202- g .set_outcome (g .root .children [0 ].children [1 ].children [0 ], o_m1 )
203- g .set_outcome (g .root .children [0 ].children [1 ].children [1 ], o_zero )
204- g .set_outcome (g .root .children [1 ].children [0 ].children [0 ], o_m1 )
205- g .set_outcome (g .root .children [1 ].children [0 ].children [1 ], o_1 )
206- g .set_outcome (g .root .children [1 ].children [1 ].children [0 ], o_zero )
207- g .set_outcome (g .root .children [1 ].children [1 ].children [1 ], o_large )
208- g .to_efg ("large_payoff_game.efg" )
209- return g
210-
211-
212- def create_3_player_with_internal_outcomes_efg (nonterm_outcomes : bool = False ) -> gbt .Game :
213- g = gbt .Game .new_tree (players = ["1" , "2" , "3" ], title = "3 player game" )
214- g .append_move (g .root , g .players .chance , ["H" , "T" ])
215- g .set_chance_probs (g .root .infoset , ["1/2" , "1/2" ])
216- g .append_move (g .root .children [0 ], "1" , ["a" , "b" ])
217- g .append_move (g .root .children [1 ], "1" , ["c" , "d" ])
218- g .append_move (g .root .children [0 ].children [0 ], "2" , ["A" , "B" ])
219- g .append_infoset (g .root .children [1 ].children [0 ], g .root .children [0 ].children [0 ].infoset )
220- g .append_move (g .root .children [0 ].children [1 ], "3" , ["W" , "X" ])
221- g .append_infoset (g .root .children [1 ].children [1 ], g .root .children [0 ].children [1 ].infoset )
222- g .append_move (g .root .children [0 ].children [0 ].children [0 ], "3" , ["Y" , "Z" ])
223- iset = g .root .children [0 ].children [0 ].children [0 ].infoset
224- g .append_infoset (g .root .children [0 ].children [0 ].children [1 ], iset )
225- g .append_move (g .root .children [0 ].children [1 ].children [1 ], "2" , ["C" , "D" ])
226- o = g .add_outcome ([3 , 1 , 4 ])
227- g .set_outcome (g .root .children [0 ].children [0 ].children [0 ].children [0 ], o )
228- o = g .add_outcome ([4 , 0 , 1 ])
229- g .set_outcome (g .root .children [0 ].children [0 ].children [0 ].children [1 ], o )
230- o = g .add_outcome ([1 , 3 , 2 ])
231- g .set_outcome (g .root .children [0 ].children [1 ].children [0 ], o )
232- o = g .add_outcome ([2 , 4 , 1 ])
233- g .set_outcome (g .root .children [0 ].children [1 ].children [1 ].children [0 ], o )
234- o = g .add_outcome ([4 , 1 , 3 ])
235- g .set_outcome (g .root .children [0 ].children [1 ].children [1 ].children [1 ], o )
236- if nonterm_outcomes :
237- o = g .add_outcome ([1 , 2 , 3 ])
238- g .set_outcome (g .root .children [1 ], o )
239- o = g .add_outcome ([1 , 0 , 1 ])
240- g .set_outcome (g .root .children [1 ].children [0 ].children [0 ], o )
241- o = g .add_outcome ([2 , - 1 , - 2 ])
242- g .set_outcome (g .root .children [1 ].children [0 ].children [1 ], o )
243- o = g .add_outcome ([- 1 , 2 , - 1 ])
244- g .set_outcome (g .root .children [1 ].children [1 ].children [0 ], o )
245- else :
246- o = g .add_outcome ([2 , 2 , 4 ])
247- g .set_outcome (g .root .children [1 ].children [0 ].children [0 ], o )
248- o = g .add_outcome ([3 , 1 , 1 ])
249- g .set_outcome (g .root .children [1 ].children [0 ].children [1 ], o )
250- o = g .add_outcome ([0 , 4 , 2 ])
251- g .set_outcome (g .root .children [1 ].children [1 ].children [0 ], o )
252- o = g .add_outcome ([1 , 2 , 3 ])
253- g .set_outcome (g .root .children [1 ].children [1 ].children [1 ], o )
254- o = g .add_outcome ([0 , 0 , 0 ])
255- g .set_outcome (g .root .children [0 ].children [0 ].children [1 ].children [0 ], o )
256- g .set_outcome (g .root .children [0 ].children [0 ].children [1 ].children [1 ], o )
257- tmp = "_with_nonterm_outcomes" if nonterm_outcomes else ""
258- g .to_efg (f"3_player{ tmp } .efg" )
259- return g
260-
261-
262188def create_matching_pennies_efg (with_neutral_outcome : bool = False ) -> gbt .Game :
263189 """
264190 TODO: use create_efg_corresponding_to_bimatrix_game
0 commit comments