void CSymbolEngineChipAmounts::CalculateStacks()
{
	// simple bubble sort for 10 stack values
	for (int i=0; i<p_tablemap->nchairs(); i++)
	{
		if (p_scraper_access->PlayerHasCards(i))
		{
			_stack[i] = _balance[i];
		}
		else
		{
			_stack[i] = 0;
		}
	}
	for (int i=0; i<p_tablemap->nchairs()-1; i++)
	{
		for (int j=i+1; j<p_tablemap->nchairs(); j++)
		{
			if (_stack[i] < _stack[j])
			{
				SwapDoubles(&_stack[i], &_stack[j]);
			}
		}
	}
	for (int i=0; i<p_tablemap->nchairs(); i++)
	{
		assert(_stack[i] >= 0);									
	}
	for (int i=p_tablemap->nchairs(); i<k_max_number_of_players; i++)
	{
		_stack[i] = 0;
	}
}
Esempio n. 2
0
void CTableLimits::SwapBlindsIfSbGreaterThanBBAndNotZero()
{
	// If SB is greater than BB that is usually a mistake and we should swap.
	// But we don't swap, if BB is zero, as that does mean, 
	// that we just got the amount wrong (BB got cards, i.e. dealt, but no bet).
	write_log(3, "CTableLimits::SwapBlindsIfSbGreaterThanBBAndNotZero()\n");
	if ((tablelimit_unreliable_input.sblind > tablelimit_unreliable_input.bblind)
		&& (tablelimit_unreliable_input.bblind >= 0.01))
	{
		write_log(3, "CTableLimits::SwapBlindsIfSbGreaterThanBBAndNotZero swap neccessary\n");
		SwapDoubles(&tablelimit_unreliable_input.sblind, &tablelimit_unreliable_input.bblind);
	}
}
double CSymbolEngineChipAmounts::SortedBalance(const int rank) {
  assert(rank >= 0);
  assert(rank < k_max_number_of_players);
	double	stacks[k_max_number_of_players];
  for (int i=0; i<k_max_number_of_players; ++i) {
    stacks[i] = _currentbet[i] + p_table_state->_players[i]._balance;
  }
	// bubble sort stacks // !! duplicate code?
	for (int i=0; i<(k_max_number_of_players-1); ++i)	{
		for (int n=i+1; n<k_max_number_of_players; ++n)	{
			if (stacks[i] < stacks[n]) {
				SwapDoubles(&stacks[i], &stacks[n]);
			}
		}
	}
  return stacks[rank];
}
Esempio n. 4
0
const double CGameState::SortedBalance(const int rank)
{
	double	stacks[k_max_number_of_players] = {0.};

	for (int i=0; i<k_max_number_of_players; i++)
		stacks[i] = _m_holdem_state[_m_ndx].m_player[i].m_balance + _m_holdem_state[_m_ndx].m_player[i].m_currentbet;

	// bubble sort stacks //!! duplicate code?
	for (int i=0; i<(k_max_number_of_players-1); i++)
	{
		for (int n=i+1; n<k_max_number_of_players; n++)
		{
			if (stacks[i] < stacks[n])
			{
				SwapDoubles(&stacks[i], &stacks[n]);
			}
		}
	}

	return stacks[rank];
}