File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -145,6 +145,17 @@ cdef extern from "games/game.h":
145145 bint Precedes(c_GameNode) except +
146146
147147 cdef cppclass c_GamePlayerRep " GamePlayerRep" :
148+ cppclass Infosets:
149+ cppclass iterator:
150+ c_GameInfoset operator * ()
151+ iterator operator++ ()
152+ bint operator == (iterator)
153+ bint operator != (iterator)
154+
155+ int size() except +
156+ iterator begin() except +
157+ iterator end() except +
158+
148159 c_Game GetGame() except +
149160 int GetNumber() except +
150161 int IsChance() except +
@@ -155,8 +166,8 @@ cdef extern from "games/game.h":
155166 int NumStrategies() except +
156167 c_GameStrategy GetStrategy(int ) except + IndexError
157168
158- int NumInfosets() except +
159169 c_GameInfoset GetInfoset(int ) except + IndexError
170+ Infosets GetInfosets() except +
160171
161172 cdef cppclass c_GameOutcomeRep " GameOutcomeRep" :
162173 c_Game GetGame() except +
Original file line number Diff line number Diff line change @@ -42,11 +42,11 @@ class PlayerInfosets:
4242
4343 def __len__(self ) -> int:
4444 """The number of information sets at which the player has the decision."""
45- return self.player.deref().NumInfosets ()
45+ return self.player.deref().GetInfosets().size ()
4646
4747 def __iter__(self ) -> typing.Iterator[Infoset]:
48- for i in range( self.player.deref().NumInfosets() ):
49- yield Infoset.wrap(self .player.deref().GetInfoset(i + 1 ) )
48+ for infoset in self.player.deref().GetInfosets( ):
49+ yield Infoset.wrap(infoset )
5050
5151 def __getitem__ (self , index: typing.Union[int , str]) -> Infoset:
5252 if isinstance(index , str ):
You can’t perform that action at this time.
0 commit comments