diff options
| author | 2016-10-23 23:30:54 +0200 | |
|---|---|---|
| committer | 2016-10-23 23:30:54 +0200 | |
| commit | 852259b33141281693efa8ccfec4d62affdaab82 (patch) | |
| tree | 97b9a36526f5afec6ed4227e22f58c0599ff1f9c /die.cpp | |
| parent | c3f5e98149b6ea6203887f6660ceae2bda0badd2 (diff) | |
| download | OneRoll-852259b33141281693efa8ccfec4d62affdaab82.tar.gz OneRoll-852259b33141281693efa8ccfec4d62affdaab82.zip | |
-optimizing the random generation.
Diffstat (limited to 'die.cpp')
| -rw-r--r-- | die.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
@@ -29,11 +29,12 @@ Die::Die() : m_hasValue(false),m_displayStatus(false),m_highlighted(true),m_base(1),m_color("")//,m_mt(m_randomDevice) { - uint seed = quintptr(this) + QDateTime::currentDateTime().toMSecsSinceEpoch(); - - qsrand(seed); +// uint seed = quintptr(this) + QDateTime::currentDateTime().toMSecsSinceEpoch(); + // qsrand(seed); + auto seed = std::chrono::high_resolution_clock::now().time_since_epoch().count(); + m_rng = std::mt19937(quintptr(this)+seed); } Die::Die(const Die& die) @@ -103,10 +104,9 @@ void Die::roll(bool adding) if(m_faces!=0) { //quint64 value=(qrand()%m_faces)+m_base; - auto seed = std::chrono::high_resolution_clock::now().time_since_epoch().count(); - std::mt19937 rng(quintptr(this)+seed); + std::uniform_int_distribution<qint64> dist(m_base,m_faces); - qint64 value = dist(rng); + qint64 value = dist(m_rng); if((adding)||(m_rollResult.isEmpty())) { insertRollValue(value); |