float playerReward()

in simple_game/kuhn.h [124:148]


   float playerReward(int pIdx) const override {
     if (! terminated() || pIdx == 0) return 0.0f;

     int cardP = card1_;
     int cardO = card2_;

     if (! isFirstPlayer()) std::swap(cardP, cardO);

     int curr_util = 0;

     if (public_ == "rrcbc" || public_ == "rrbc") { 
       // Last player folded. The current player wins.
       curr_util = 1;
     } else if (public_ == "rrcc") {
       // Showdown with no bets
       curr_util = cardP > cardO ? 1 : -1;
     } else {
       // Showdown with 1 bet
       assert(public_ == "rrcbb" || public_ == "rrbb");
       curr_util = cardP > cardO ? 2 : -2;
     }

     int currIdx = isFirstPlayer() ? 1 : 2;
     return pIdx == currIdx ? curr_util : -curr_util;
   }