第3版感动发电机为一类。 是我的新的随机数生成技术修正这个时间呢?
template<typename T = int>
class MyRandomGenerator
{
public:
MyRandomGenerator()
{
std::random_device rd;
gen = std::mt19937{rd()};
}
T getNumber(const T& From, const T& To)
{
std::uniform_int_distribution<T> dist(From, To);
return dist(gen);
}
private:
std::mt19937 gen;
};
在这里,我的新位置计算器:
auto calculate_x_position = [&]() ->sf::Uint32 {return RandGen.getNumber(0, W - 1); };
auto calculate_y_position = [&]() ->sf::Uint32 {return RandGen.getNumber(0, H - 1); };
同样的模式/问题依旧:
版本2创建〜3点%的每张地图10.000分第二的地图。 结果还是一样。 此外,它有一个旋转的地图上会变得更加清晰。 例:
原题:我走进试图得出一个简单的星图。 为此,我首先计算星星的x和y位置。 X和Y是窗口的宽度和高度的范围内。
这是我的随机数生成函数:
template<typename T>
T getRandomNumberBetween(const T& Min, const T& Max)
{
static std::random_device rd;
static std::uniform_int_distribution<T> dist{Min, Max};
return dist(rd);
}
我用它是这样的:
auto calculate_x_position = std::bind(inc::getRandomNumberBetween<sf::Uint32>, 0, Width-1);
auto calculate_y_position = std::bind(inc::getRandomNumberBetween<sf::Uint32>, 0, Height-1);
x = calculate_x_position(); //...
但正如我画我的地图一遍又一遍在我看来,有一个支点到大多数恒星往往是。 例如,大多数明星都在我窗口的上半部分。
例:
我使用的是错误的或者在这里有一个错误的期望......因为? 在这里 ,它说:
这种分布在一个范围内产生随机整数[A,B],其中每一个可能的值具有所生产的相等可能性。
亲切的问候