private uint getRand() { var r = tiny.temper(); tiny.nextState(); ++FramesUsed; return(r); }
private void search() { int min = (int)s_min.Value; int max = (int)s_max.Value; uint[] st = { (uint)status0.Value, (uint)status1.Value, (uint)status2.Value, (uint)status3.Value, }; uint[] status = { st[0], st[1], st[2], st[3] }; var tiny = new TinyMT(status, new TinyMTParameter(0x8f7011ee, 0xfc78ff1f, 0x3793fdff)); List <DataGridViewRow> list = new List <DataGridViewRow>(); k_dataGridView.Rows.Clear(); var setting = getSettings(); var rng = getRNGSettings(); for (int i = 0; i < min; i++) { tiny.nextState(); } for (int i = min; i <= max; i++, tiny.nextState()) { //statusの更新 tiny.status.CopyTo(st, 0); EggRNGSearch.EggRNGResult result = rng.Generate(st); if (!frameMatch(result, setting)) { continue; } list.Add(getRow(i, rng, result, k_dataGridView)); } k_dataGridView.Rows.AddRange(list.ToArray()); k_dataGridView.CurrentCell = null; }