private int FindFrame2(uint seed, uint[] Pool) { var rng = new MersenneTwister_Fast(seed); int i; rng.Next(PreAdvance + minframe); for (i = 0; i < poolsize; i++) { Pool[i] = rng.Nextuint() >> 27; } for (i = 0; i < _poolsize; i++) { if (IVmin[0] <= Pool[i] && Pool[i] <= IVmax[0] && IVmin[1] <= Pool[i + 1] && Pool[i + 1] <= IVmax[1] && IVmin[2] <= Pool[i + 2] && Pool[i + 2] <= IVmax[2] && IVmin[3] <= Pool[i + 3] && Pool[i + 3] <= IVmax[3] && IVmin[4] <= Pool[i + 4] && Pool[i + 4] <= IVmax[4] && IVmin[5] <= Pool[i + 5] && Pool[i + 5] <= IVmax[5]) { break; } } if (i == _poolsize) { return(0); } return(i + minframe); }
private int[] FindFrame(uint seed, uint[] Pool1, uint[] Pool2) { var rng = new MersenneTwister_Fast(seed); int[] result = new int[2]; int i; rng.Next(PreAdvance + minframe1); for (i = 0; i < poolsize1; i++) { Pool1[i] = rng.Nextuint() >> 27; } for (i = 0; i < _poolsize1; i++) { if (IV1[0] == Pool1[i] && IV1[1] == Pool1[i + 1] && IV1[2] == Pool1[i + 2] && IV1[3] == Pool1[i + 3] && IV1[4] == Pool1[i + 4] && IV1[5] == Pool1[i + 5]) { break; } } if (i == _poolsize1) { return(result); } result[0] = i + minframe1; rng.Next(gap); for (i = 0; i < poolsize2; i++) { Pool2[i] = rng.Nextuint() >> 27; } for (i = 0; i < _poolsize2; i++) { if (IV2[0] == Pool2[i] && IV2[1] == Pool2[i + 1] && IV2[2] == Pool2[i + 2] && IV2[3] == Pool2[i + 3] && IV2[4] == Pool2[i + 4] && IV2[5] == Pool2[i + 5]) { break; } } if (i == _poolsize2) { return(result); } result[1] = i + minframe2; return(result); }
private void parseseed(uint seed, int frame1, int frame2) { var frame = new Frame_Seed() { Seed = seed, Frame1 = frame1, Frame2 = frame2 }; var rng = new MersenneTwister_Fast(seed); rng.Next(PreAdvance + 7 + frame1); frame.nature1 = (byte)((rng.Nextuint() * 25ul) >> 32); rng.Next(frame2 - frame1 - 1); frame.nature2 = (byte)((rng.Nextuint() * 25ul) >> 32); lock (_locker) { seedlist.Add(frame); UpdateTable(null); } }
private void parseseed2(uint seed, int frame) { var NewFrame = new Frame_Seed() { Seed = seed, Frame1 = frame, }; var rng = new MersenneTwister_Fast(seed); rng.Next(PreAdvance + 7 + frame); NewFrame.nature1 = (byte)((rng.Nextuint() * 25ul) >> 32); if (Nature != NewFrame.nature1) { return; } NewFrame.gender = (byte)((rng.Nextuint() * 252ul) >> 32); lock (_locker) { seedlist.Add(NewFrame); seedlist = seedlist.OrderBy(t => t.Seed).ToList(); UpdateTable(null); } }