Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var finalSecret = serverSeed + clientSeed;
- var bytes = GetSha256Bytes(finalSecret);
- var hash = StringHelpers.ByteToString(bytes);
- var mersenneTwisterSeed = Convert.ToUInt32(hash.Substring(hash.Length - 8, 8), 16);
- var mersenneTwister = new MersenneTwister(mersenneTwisterSeed);
- _finalShuffle = InitialShuffle.Shuffle(mersenneTwister).ToList();
- /////////////////
- public static class Shuffler
- {
- public static IEnumerable<T> Shuffle<T>(this IEnumerable<T> source, Random randomNumberGenerator)
- {
- var elements = source.ToArray();
- for (var i = elements.Length - 1; i >= 0; i--)
- {
- // Swap element "i" with a random earlier element it (or itself)
- // ... except we don't really need to swap it fully, as we can
- // return it immediately, and afterwards it's irrelevant.
- var swapIndex = randomNumberGenerator.Next(i + 1);
- yield return elements[swapIndex];
- elements[swapIndex] = elements[i];
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement