// 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); } }
// 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); } }
// 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); }
// 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); } }