Example #1
0
void CTableLimits::CalcBetsizesForEveryStreet()
{
	write_log(3, "CTableLimits::CalcBetsizesForEveryStreet()\n");
	// Use the best  known values here, not tablelimit_unreliable_input
	SetBet(k_betround_preflop, bblind());															
	SetBet(k_betround_flop,    bblind());															
	SetBet(k_betround_turn,    bigbet()>=0.01 ? bigbet() : (isnl() || ispl() ? bblind() : bblind()*2));	
	SetBet(k_betround_river,   bigbet()>=0.01 ? bigbet() : (isnl() || ispl() ? bblind() : bblind()*2));	
}
bool CSymbolEngineTableLimits::EvaluateSymbol(const char *name, double *result, bool log /* = false */) {
  FAST_EXIT_ON_OPENPPL_SYMBOLS(name);
	if (memcmp(name, "bet", 3)==0)	{
		if (memcmp(name, "bet", 3)==0 && strlen(name)==3) {
			*result = bet();
      return true;
		}	else if (memcmp(name, "bet", 3)==0 && strlen(name)==4) {
      char betround = name[3];
      if ((betround >= '1') && (betround <= '4')) {
			  *result = bet(name[3]-'0');
        return true;
      }
		}
    // Invalid symbol
		return false;
	}
	if (memcmp(name, "bblind", 6)==0 && strlen(name)==6) {
		*result = bblind();
	}	else if (memcmp(name, "sblind", 6)==0 && strlen(name)==6)	{
		*result = sblind();
	}	else if (memcmp(name, "ante", 4)==0 && strlen(name)==4)	{
		*result = ante();
	}	else if (memcmp(name, "buyin", 5)==0 && strlen(name)==5) {
		*result = buyin();
  }	else {
		// Symbol of a different symbol-engine
		return false;
	}
	// Valid symbol
	return true;
}
double CSymbolEngineTableLimits::bet(int betround) {
	assert(betround >= k_betround_preflop);
	assert(betround <= k_betround_river);
  assert(p_symbol_engine_gametype != NULL);
  if (p_symbol_engine_gametype->isfl() && (betround >= k_betround_turn)) {
    return bigbet();
  }
	return bblind();
}