@@ -743,9 +743,9 @@ bool GameTreeRep::IsPerfectRecall(GameInfoset &s1, GameInfoset &s2) const
743743{
744744 for (auto player : m_players) {
745745 for (int i = 1 ; i <= player->NumInfosets (); i++) {
746- GameTreeInfosetRep *iset1 = player->m_infosets [i];
746+ GameTreeInfosetRep *iset1 = player->m_infosets [i - 1 ];
747747 for (int j = 1 ; j <= player->NumInfosets (); j++) {
748- GameTreeInfosetRep *iset2 = player->m_infosets [j];
748+ GameTreeInfosetRep *iset2 = player->m_infosets [j - 1 ];
749749
750750 bool precedes = false ;
751751 int action = 0 ;
@@ -815,7 +815,7 @@ void GameTreeRep::Canonicalize()
815815 // Coded using a bubble sort for simplicity; large games might
816816 // find a quicksort worthwhile.
817817 for (int iset = 1 ; iset <= player->m_infosets .size (); iset++) {
818- GameTreeInfosetRep *infoset = player->m_infosets [iset];
818+ GameTreeInfosetRep *infoset = player->m_infosets [iset - 1 ];
819819 for (int i = 1 ; i < infoset->m_members .size (); i++) {
820820 for (int j = 1 ; j < infoset->m_members .size () - i; j++) {
821821 if (infoset->m_members [j + 1 ]->m_number < infoset->m_members [j]->m_number ) {
@@ -832,24 +832,24 @@ void GameTreeRep::Canonicalize()
832832 // find a quicksort worthwhile.
833833 for (int i = 1 ; i < player->m_infosets .size (); i++) {
834834 for (int j = 1 ; j < player->m_infosets .size () - i; j++) {
835- int a = ((player->m_infosets [j + 1 ]->m_members .size ())
836- ? player->m_infosets [j + 1 ]->m_members [1 ]->m_number
837- : 0 );
838- int b = ((player->m_infosets [j]->m_members .size ())
835+ int a = ((player->m_infosets [j]->m_members .size ())
839836 ? player->m_infosets [j]->m_members [1 ]->m_number
840837 : 0 );
838+ int b = ((player->m_infosets [j - 1 ]->m_members .size ())
839+ ? player->m_infosets [j - 1 ]->m_members [1 ]->m_number
840+ : 0 );
841841
842842 if (a < b || b == 0 ) {
843- GameTreeInfosetRep *tmp = player->m_infosets [j];
844- player->m_infosets [j] = player->m_infosets [j + 1 ];
845- player->m_infosets [j + 1 ] = tmp;
843+ GameTreeInfosetRep *tmp = player->m_infosets [j - 1 ];
844+ player->m_infosets [j - 1 ] = player->m_infosets [j];
845+ player->m_infosets [j] = tmp;
846846 }
847847 }
848848 }
849849
850850 // Reassign information set IDs
851851 for (int iset = 1 ; iset <= player->m_infosets .size (); iset++) {
852- player->m_infosets [iset]->m_number = iset;
852+ player->m_infosets [iset - 1 ]->m_number = iset;
853853 }
854854 }
855855}
0 commit comments