Пример #1
0
double MaximumBetsizeForGameType()
{
    double maximum_betsize = 0;
    if (p_tablelimits->ispl())
    {
        write_log(prefs.debug_betsize_adjustment(),
                  "[SwagAdjustment] Game-type is Pot Limit.\n");
        maximum_betsize = MaximumBetsizeForPotLimit();
    }
    else if (p_tablelimits->isfl())
    {
        write_log(prefs.debug_betsize_adjustment(),
                  "[SwagAdjustment] Game-type is Fixed Limit. No \"swagging\" supported.\n");
        maximum_betsize = 0;
    }
    else
    {
        int userchair = p_symbol_engine_userchair->userchair();
        write_log(prefs.debug_betsize_adjustment(),
                  "[SwagAdjustment] Game-type is No Limit. Betsize restricted only by users balance.\n");
        maximum_betsize = MaximumPossibleBetsizeBecauseOfBalance();
    }
    write_log(prefs.debug_betsize_adjustment(),
              "[SwagAdjustment] MaximumBetsizeForGameType(): %f\n", maximum_betsize);
    assert(maximum_betsize >= 0);
    return maximum_betsize;
}
Пример #2
0
double AdjustedBetsize(double amount_to_raise_to) {
	double original_amount_to_raise_to = amount_to_raise_to;
  write_log(Preferences()->debug_betsize_adjustment(),
    "[BetsizeAdjustment] Rounding to beautiful numbers\n");
  // Rounding to beautiful numbers but only if enabled
  amount_to_raise_to = RoundToBeautifulBetsize(amount_to_raise_to);
  double minimum;
  if (p_engine_container->symbol_engine_casino()->ConnectedToDDPoker()) {
    write_log(Preferences()->debug_betsize_adjustment(),
      "[BetsizeAdjustment] Special adjustment for DDPoker needed.\n");
	  minimum = min(MinimumBetsizeDueToPreviousRaise(), MaximumBetsizeDueToMaxOppStack() );
  } else {
	  minimum = MinimumBetsizeDueToPreviousRaise();
  }
	AdaptValueToMinMaxRange(&amount_to_raise_to, minimum, amount_to_raise_to);
	AdaptValueToMinMaxRange(&amount_to_raise_to, amount_to_raise_to, MaximumBetsizeForGameType());
	AdaptValueToMinMaxRange(&amount_to_raise_to, amount_to_raise_to, MaximumPossibleBetsizeBecauseOfBalance());
  // Rounding to beautiful numbers (here full dollars)
  AdaptValueToMinMaxRange(&amount_to_raise_to, amount_to_raise_to, RoundedBetsizeForTournaments(amount_to_raise_to));
  // Special handling for DDPoker
  // http://www.maxinmontreal.com/forums/viewtopic.php?f=120&t=19185&hilit=ddpoker
  if(p_engine_container->symbol_engine_casino()->ConnectedToDDPoker()){
    //!!?? Duplicate to ZeeZooLaas code above?
		AdaptValueToMinMaxRange(&amount_to_raise_to, amount_to_raise_to, MaximumBetsizeDueToMaxOppStack());
	}
  AdaptValueToMinMaxRange(&amount_to_raise_to, 0, SwagAmountAjustedToCasino(amount_to_raise_to));
	return amount_to_raise_to; 
}
Пример #3
0
bool BetSizeIsAllin(double amount_to_raise_to_in_dollars_and_cents) {
	double maximum_betsize = MaximumPossibleBetsizeBecauseOfBalance();
	write_log(preferences.debug_betsize_adjustment(), "[SwagAdjustment] BetSizeIsAllin() desired betsize: %.2f\n",
		amount_to_raise_to_in_dollars_and_cents);
	write_log(preferences.debug_betsize_adjustment(), "[SwagAdjustment] BetSizeIsAllin() maximum betsize: %.2f\n",
		maximum_betsize);
	return (amount_to_raise_to_in_dollars_and_cents >= maximum_betsize);
}
Пример #4
0
double AdjustedBetsize(double amount_to_raise_to)
{
    AdaptValueToMinMaxRange(&amount_to_raise_to, MinimumBetsizeDueToPreviousRaise(), amount_to_raise_to);
    AdaptValueToMinMaxRange(&amount_to_raise_to, amount_to_raise_to, MaximumBetsizeForGameType());
    AdaptValueToMinMaxRange(&amount_to_raise_to, amount_to_raise_to, MaximumPossibleBetsizeBecauseOfBalance());
    AdaptValueToMinMaxRange(&amount_to_raise_to, amount_to_raise_to, RoundedBetsizeForTournaments(amount_to_raise_to));
    return amount_to_raise_to;
}
Пример #5
0
double AdjustedBetsize(double amount_to_raise_to) {
	double original_amount_to_raise_to = amount_to_raise_to;
  amount_to_raise_to = RoundToBeautifulBetsize(amount_to_raise_to);
	AdaptValueToMinMaxRange(&amount_to_raise_to, MinimumBetsizeDueToPreviousRaise(), amount_to_raise_to);
	AdaptValueToMinMaxRange(&amount_to_raise_to, amount_to_raise_to, MaximumBetsizeForGameType());
	AdaptValueToMinMaxRange(&amount_to_raise_to, amount_to_raise_to, MaximumPossibleBetsizeBecauseOfBalance());
	AdaptValueToMinMaxRange(&amount_to_raise_to, amount_to_raise_to, RoundedBetsizeForTournaments(amount_to_raise_to));
	AdaptValueToMinMaxRange(&amount_to_raise_to, 0, SwagAmountAjustedToCasino(amount_to_raise_to));
	return amount_to_raise_to; 
}
Пример #6
0
bool ChangeBetsizeToAllin(double amount_to_raise_to) {
  assert(amount_to_raise_to >= 0.0);
  assert(p_function_collection != NULL);
  double critical_betsize_to_balance_ratio = 
    p_function_collection->EvaluateAutoplayerFunction(k_standard_function_allin_on_betsize_balance_ratio);
  // Enabled?
  if (critical_betsize_to_balance_ratio <= 0.0) {
    write_log(preferences.debug_allin_adjustment(),
      "[AllinAdjustment] Disabled (<= 0.00)\n");
    return false;
  }
  // Safety measure: good balance?
  if (p_table_state->User()->_balance <= 0.0) {
    write_log(preferences.debug_allin_adjustment(),
      "[AllinAdjustment] Cancelled due to bad users balance\n");
    return false;
  }
  double total_balance = MaximumPossibleBetsizeBecauseOfBalance();
  double critical_betsize = critical_betsize_to_balance_ratio * total_balance;
  // Safety measure: good old betsize to balance ratio?
  // If our currentbet is "too large" or our balance "too low"
  // then we alreadz should be allin or something is wrong.
  // Act conservatively here
  if (p_symbol_engine_chip_amounts->currentbet(USER_CHAIR) >= critical_betsize) {
    write_log(preferences.debug_allin_adjustment(),
      "[AllinAdjustment] Cancelled as we already should be allin if input was right.\n");
    return false;
  }
  if (amount_to_raise_to >= critical_betsize) {
    write_log(preferences.debug_allin_adjustment(),
      "[AllinAdjustment] Changing betsize %.2f to allin\n", amount_to_raise_to);
    return true;
  } else {
    write_log(preferences.debug_allin_adjustment(),
      "[AllinAdjustment] Not changing betsize %.2f to allin\n", amount_to_raise_to);
    return false;
  }
}
Пример #7
0
double MaximumBetsizeForGameType() {
	double maximum_betsize = 0;
	if (p_engine_container->symbol_engine_gametype()->ispl())	{
		write_log(Preferences()->debug_betsize_adjustment(),
			"[BetsizeAdjustment] Game-type is Pot Limit.\n");
		maximum_betsize = BetsizeForBetpot(k_autoplayer_function_betpot_1_1);
    write_log(Preferences()->debug_betsize_adjustment(), 
      "[BetsizeAdjustment] MaximumBetsizeForPotLimit: %.2f\n", maximum_betsize);
	}	else if (p_engine_container->symbol_engine_gametype()->isfl()) {
		write_log(Preferences()->debug_betsize_adjustment(), 
			"[BetsizeAdjustment] Game-type is Fixed Limit. No betsizing supported.\n");
		maximum_betsize = 0;
	}	else {
		int userchair = p_engine_container->symbol_engine_userchair()->userchair();
		write_log(Preferences()->debug_betsize_adjustment(), 
			"[BetsizeAdjustment] Game-type is No Limit. Betsize restricted only by users balance.\n");
		maximum_betsize = MaximumPossibleBetsizeBecauseOfBalance();
	}
	write_log(Preferences()->debug_betsize_adjustment(), 
		"[BetsizeAdjustment] MaximumBetsizeForGameType(): %.2f\n", maximum_betsize);
	assert(maximum_betsize >= 0);
	return maximum_betsize;	
}