static void Main(string[] args) { // 適当に計算したりするテスト用コンソールです SeedSearcher searcher = new SeedSearcher(SeedSearcher.Mode.Cuda35); SeedSearcher.CudaInitialize(); SeedSearcher.SetCudaCondition(0, 31, 27, 3, 19, 18, 31, 1, 15, 3, false, 3, 2); SeedSearcher.SetCudaCondition(1, 31, 9, 31, 31, 15, 31, 1, 18, 2, false, 3, 4); SeedSearcher.SetCudaCondition(2, 31, 31, 31, 1, 31, 27, 1, 6, 2, true, 4, 4); SeedSearcher.SetCudaCondition(3, 31, 2, 23, 31, 31, 31, 1, 15, 2, true, 4, 4); SeedSearcher.SetCudaTargetCondition6(27, 3, 19, 18, 9, 15); searcher.CudaLoopPartition = 8; Console.WriteLine("計算中..."); // 時間計測 var sw = new System.Diagnostics.Stopwatch(); sw.Start(); // 計算 searcher.Calculate(false, 0, 0, null); sw.Stop(); Console.WriteLine($"{searcher.Result.Count} results"); foreach (ulong result in searcher.Result) { Console.WriteLine($"0x{result:X}"); } Console.WriteLine($"{sw.ElapsedMilliseconds}[ms]"); }
static void Main(string[] args) { // 適当に計算したりするテスト用コンソールです // 0x123イベントレイド // マホミル★3 // 4匹目3V 31 28 31 4 31 11 うっかりや 夢 ♀固定 個性1 うたれづよい // マホミル★4 // 4匹目4V 31 10 31 31 31 27 ひかえめ 特性1 ♀固定 個性1 うたれづよい // マホミル★3 // 5匹目3V 27 21 31 31 18 31 のうてんき 特性1 ♀固定 個性2 うたれづよい // マホミル★3 // 6匹目3V 31 31 3 17 31 6 さみしがり 特性1 ♀固定 個性3 みえっぱり SeedSearcher searcher = new SeedSearcher(SeedSearcher.Mode.Cuda35); SeedSearcher.CudaInitialize(); SeedSearcher.SetCudaCondition(0, 31, 28, 31, 4, 31, 11, 2, 19, 2, true, 4, 3); SeedSearcher.SetCudaCondition(1, 31, 10, 31, 31, 31, 27, 0, 15, 2, true, 4, 4); SeedSearcher.SetCudaCondition(2, 27, 21, 31, 31, 18, 31, 0, 9, 2, true, 4, 3); SeedSearcher.SetCudaCondition(3, 31, 31, 3, 17, 31, 6, 0, 1, 5, true, 4, 3); SeedSearcher.SetCudaTargetCondition5(28, 4, 11, 10, 27); searcher.CudaLoopPartition = 0; Console.WriteLine("計算中..."); // 時間計測 var sw = new System.Diagnostics.Stopwatch(); sw.Start(); // 計算 searcher.Calculate(false, 0, 0, null); sw.Stop(); Console.WriteLine($"{searcher.Result.Count} results"); foreach (ulong result in searcher.Result) { Console.WriteLine($"0x{result:X}"); } Console.WriteLine($"{sw.ElapsedMilliseconds}[ms]"); }
// 検索処理共通 async void SearchImpl(SeedSearcher searcher) { int maxRerolls = 0; try { maxRerolls = int.Parse(f_TextBoxRerolls.Text); } catch (Exception) { } bool isEnableStop = f_CheckBoxStop.Checked; // ボタンを無効化 f_ButtonStartSearch.Enabled = false; f_ButtonStartSearch.Text = Messages.Instance.SystemLabel["Searching"]; f_ButtonStartSearch.BackColor = System.Drawing.Color.WhiteSmoke; // 時間計測 bool isShowResultTime = f_CheckBoxShowResultTime.Checked; System.Diagnostics.Stopwatch stopWatch = null; if (isShowResultTime) { stopWatch = new System.Diagnostics.Stopwatch(); stopWatch.Start(); } await Task.Run(() => { searcher.Calculate(isEnableStop, maxRerolls); }); if (isShowResultTime && stopWatch != null) { stopWatch.Stop(); MessageBox.Show($"{stopWatch.ElapsedMilliseconds}[ms]"); } f_ButtonStartSearch.Enabled = true; f_ButtonStartSearch.Text = Messages.Instance.SystemLabel["StartSearch"]; f_ButtonStartSearch.BackColor = System.Drawing.Color.GreenYellow; // 結果が見つからなかったらエラー if (searcher.Result.Count == 0) { // エラー CreateErrorDialog(Messages.Instance.ErrorMessage["NotFound"]); return; } else { if (searcher.Result.Count > 1) { using (StreamWriter sw = new StreamWriter("seeds.txt")) { foreach (var t in searcher.Result) { sw.WriteLine($"{t:X}"); } } MessageBox.Show(Messages.Instance.SystemMessage["FindManySeeds"], Messages.Instance.SystemMessage["ResultDialogTitle"], MessageBoxButtons.OK, MessageBoxIcon.Information); } f_TextBoxResultSeed.Text = $"{searcher.Result[0]:X}"; f_TabControlMain.SelectedIndex = 2; // 見つかったらリスト出力 ListGenerate(); } }