diff options
author | jbzdarkid <jbzdarkid@gmail.com> | 2018-11-05 07:21:05 -0800 |
---|---|---|
committer | jbzdarkid <jbzdarkid@gmail.com> | 2018-11-05 07:21:05 -0800 |
commit | a2913485f2b072f0f3c531b9ef2e89ed066ec128 (patch) | |
tree | 9a7c28fe5c48a63c11e27950c975149991e8dba8 | |
parent | e48ce4469cee270687e04bc1a2b91d3c2bba0789 (diff) | |
download | witness-tutorializer-a2913485f2b072f0f3c531b9ef2e89ed066ec128.tar.gz witness-tutorializer-a2913485f2b072f0f3c531b9ef2e89ed066ec128.tar.bz2 witness-tutorializer-a2913485f2b072f0f3c531b9ef2e89ed066ec128.zip |
Fix RNG not changing
-rw-r--r-- | Source/Random.cpp | 15 | ||||
-rw-r--r-- | Source/Random.h | 16 | ||||
-rw-r--r-- | Source/Source.vcxproj | 1 | ||||
-rw-r--r-- | Source/Source.vcxproj.filters | 3 |
4 files changed, 24 insertions, 11 deletions
diff --git a/Source/Random.cpp b/Source/Random.cpp new file mode 100644 index 0000000..cc3eb6c --- /dev/null +++ b/Source/Random.cpp | |||
@@ -0,0 +1,15 @@ | |||
1 | #include <chrono> | ||
2 | |||
3 | #include "Random.h" | ||
4 | |||
5 | int Random::s_seed = time(nullptr); // Seed from the time in milliseconds | ||
6 | |||
7 | void Random::SetSeed(int seed) { | ||
8 | s_seed = seed; | ||
9 | } | ||
10 | |||
11 | int Random::RandInt(int min, int max) { | ||
12 | s_seed = (214013 * s_seed + 2531011) % 2147483648; | ||
13 | if (min == max) return min; | ||
14 | return (s_seed % (max - (min - 1))) + min; | ||
15 | } | ||
diff --git a/Source/Random.h b/Source/Random.h index 40998de..179f0fa 100644 --- a/Source/Random.h +++ b/Source/Random.h | |||
@@ -1,18 +1,12 @@ | |||
1 | #pragma once | 1 | #pragma once |
2 | #include <chrono> | 2 | #include <typeinfo> |
3 | |||
4 | static int s_seed = time(nullptr); // Seed from the time in milliseconds | ||
5 | 3 | ||
6 | class Random | 4 | class Random |
7 | { | 5 | { |
8 | public: | 6 | public: |
9 | static void SetSeed(int seed) { | 7 | static void SetSeed(int seed); |
10 | s_seed = seed; | 8 | static int RandInt(int min, int max); |
11 | } | ||
12 | 9 | ||
13 | static int RandInt(int min, int max) { | 10 | private: |
14 | s_seed = (214013 * s_seed + 2531011) % 2147483648; | 11 | static int s_seed; |
15 | if (min == max) return min; | ||
16 | return (s_seed % (max - (min - 1))) + min; | ||
17 | } | ||
18 | }; | 12 | }; |
diff --git a/Source/Source.vcxproj b/Source/Source.vcxproj index 020f69b..4319a91 100644 --- a/Source/Source.vcxproj +++ b/Source/Source.vcxproj | |||
@@ -174,6 +174,7 @@ | |||
174 | <ClCompile Include="Main.cpp" /> | 174 | <ClCompile Include="Main.cpp" /> |
175 | <ClCompile Include="Memory.cpp" /> | 175 | <ClCompile Include="Memory.cpp" /> |
176 | <ClCompile Include="Panel.cpp" /> | 176 | <ClCompile Include="Panel.cpp" /> |
177 | <ClCompile Include="Random.cpp" /> | ||
177 | <ClCompile Include="Randomizer.cpp" /> | 178 | <ClCompile Include="Randomizer.cpp" /> |
178 | <ClCompile Include="RandomizerCore.cpp" /> | 179 | <ClCompile Include="RandomizerCore.cpp" /> |
179 | </ItemGroup> | 180 | </ItemGroup> |
diff --git a/Source/Source.vcxproj.filters b/Source/Source.vcxproj.filters index 8f94061..f480c6c 100644 --- a/Source/Source.vcxproj.filters +++ b/Source/Source.vcxproj.filters | |||
@@ -53,6 +53,9 @@ | |||
53 | <ClCompile Include="Panel.cpp"> | 53 | <ClCompile Include="Panel.cpp"> |
54 | <Filter>Source Files</Filter> | 54 | <Filter>Source Files</Filter> |
55 | </ClCompile> | 55 | </ClCompile> |
56 | <ClCompile Include="Random.cpp"> | ||
57 | <Filter>Source Files</Filter> | ||
58 | </ClCompile> | ||
56 | </ItemGroup> | 59 | </ItemGroup> |
57 | <ItemGroup> | 60 | <ItemGroup> |
58 | <ResourceCompile Include="Version.rc"> | 61 | <ResourceCompile Include="Version.rc"> |