Пример #1
0
        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]");
        }
Пример #2
0
        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]");
        }
Пример #3
0
        // 検索処理共通
        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();
            }
        }