예제 #1
0
        // run an alg runner each case once from the inputted subset in sequence
        private void RunSequentialButton_Click(object sender, EventArgs e)
        {
            try
            {
                List <int> algs;
                // if only one number given, start at that number and don't end until the entire alg set is complete
                if (int.TryParse(RangeBox.Text, out int startNum))
                {
                    algs = SubsetTools.GetListFromRange($"{startNum}-{Info.GetCube(Set).GetNumPositions() - 1}", Info.GetNumPositionsInSet(Set));
                }
                else
                {
                    algs = GetListFromAlgSet(Set, RangeBox.Text);
                    algs = algs.Distinct().ToList();
                }

                //var screen = new RunnerScreen(new AlgRunner(new ZbllCube(CubeSize), new SingleCycleGenerator(algs), new AlgsFromFile(new AlgFile("zbll.alg", AlgFileMode.Open, AlgFileAccess.Read))));
                var screen = new DefaultRunnerScreen(new AlgRunner(Info.GetCube(Set), new SequentialGenerator(algs), new AlgsFromFileStored(Info.GetAlgFileName(Set))), RunnerScreenCallback);
                screen.Text       = Set.ToString() + " algs";
                screen.KeyPreview = true;
                screen.Show();
                this.Hide();
                RecentSubsetFile.AddSet(RangeBox.Text.Trim(), Set);
                UpdateRecentSubsetSelector();
            }
            catch (ArgumentOutOfRangeException)
            {
                MessageBox.Show("no cases selected");
            }
            catch (ArgumentException ex)
            {
                MessageBox.Show(ex.Message, "invalid range", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
예제 #2
0
 // run an alg runner that runs through each case once from the inputted subset
 private void SingleCycleButton_Click(object sender, EventArgs e)
 {
     try
     {
         List <int> algs = GetListFromAlgSet(Set, RangeBox.Text);
         algs = algs.Distinct().ToList();
         //var screen = new RunnerScreen(new AlgRunner(new ZbllCube(CubeSize), new SingleCycleGenerator(algs), new AlgsFromFile(new AlgFile("zbll.alg", AlgFileMode.Open, AlgFileAccess.Read))));
         var screen = new DefaultRunnerScreen(new AlgRunner(Info.GetCube(Set), new SingleCycleGenerator(algs), new AlgsFromFileStored(Info.GetAlgFileName(Set))), RunnerScreenCallback);
         screen.Text       = Set.ToString() + " algs";
         screen.KeyPreview = true;
         screen.Show();
         this.Hide();
         RecentSubsetFile.AddSet(RangeBox.Text.Trim(), Set);
         UpdateRecentSubsetSelector();
     }
     catch (ArgumentOutOfRangeException)
     {
         MessageBox.Show("no cases selected");
     }
     catch (ArgumentException ex)
     {
         MessageBox.Show(ex.Message, "invalid range", MessageBoxButtons.OK, MessageBoxIcon.Error);
         //MessageBox.Show(ex.StackTrace);
     }
 }
예제 #3
0
        // run an alg runner with a RandomFixedGenerator from the inputted subset
        private void RunFixedButton_Click(object sender, EventArgs e)
        {
            if (!int.TryParse(RunFixedBox.Text, out int numCases))
            {
                MessageBox.Show("Number of cases is not an integer.", "error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            List <int> algs = GetListFromAlgSet(Set, RangeBox.Text);

            algs = algs.Distinct().ToList();
            var screen = new DefaultRunnerScreen(new AlgRunner(Info.GetCube(Set), new RandomFixedGenerator(algs, numCases), new AlgsFromFileStored(Info.GetAlgFileName(Set))), RunnerScreenCallback);

            screen.Text       = Set.ToString() + " algs";
            screen.KeyPreview = true;
            screen.Show();
            this.Hide();
            RecentSubsetFile.AddSet(RangeBox.Text.Trim(), Set);
        }
예제 #4
0
 // run an alg runner with a RandomAlgGenerator from the inputted subset
 private void RunRandomButton_Click(object sender, EventArgs e)
 {
     try
     {
         List <int> algs = GetListFromAlgSet(Set, RangeBox.Text);
         algs = algs.Distinct().ToList();
         var screen = new DefaultRunnerScreen(new AlgRunner(Info.GetCube(Set), new RandomAlgGenerator(algs), new AlgsFromFileStored(Info.GetAlgFileName(Set))), RunnerScreenCallback);
         screen.Text       = Set.ToString() + " algs";
         screen.KeyPreview = true;
         screen.Show();
         this.Hide();
         RecentSubsetFile.AddSet(RangeBox.Text.Trim(), Set);
         UpdateRecentSubsetSelector();
     }
     catch (ArgumentException ex)
     {
         MessageBox.Show(ex.Message, "invalid range", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
 }