The Euler Projects are a series of problems meant to be solved prgrammatically. After I had completed a few of these problems, I decided I wanted to be able to access and run them from a single Interface, so I adjusted my approach and began writing them.

I have written my projects in C#, and in such a way that they can be accessed via a single UI

UI

The layout is as follows.

namespace UX
{
    public partial class frmEulerProjects : Form
    {
        public frmEulerProjects()
        {
            InitializeComponent();
#if !DEBUG
            lblTestInput.Visible = false;
            txtTestInput.Visible = false;
#endif
        }
        private void frmEulerProjects_Load(object sender, EventArgs e)
        {
            PopulateProjectsList();
            lstProjects.SelectedIndex = 0;
            lblTitle.Text = lstProjects.SelectedItem.ToString();
            lblOutput.Text = string.Empty;
        }
        private void lstProjects_SelectedIndexChanged(object sender, EventArgs e)
        {
            lblTitle.Text = lstProjects.SelectedItem.ToString();
            lblOutput.Text = string.Empty;
        }
        private void lbtnSelection10_Clicked(object sender, EventArgs e)
        {
            lstProjects.SelectedIndex = 9;
            lstProjects_SelectedIndexChanged(sender, e);
        }
        private void lbtnRunProject_Clicked(object sender, EventArgs e)
        {
            try
            {
                var project = getEulerProjectSelected();
                lblOutput.Text = "Solving...";
#if DEBUG
                if (txtTestInput.Text != string.Empty)
                {
                    lblOutput.Text = project.RunSolution(txtTestInput.Text);
                }
                else { lblOutput.Text = project.RunSolution(); }
#else
                lblOutput.Text = project.RunSolution();
#endif
            }
            catch(Exception exception)
            {
                MessageBox.Show(exception.Message, "Something Went Wrong");
            }
        }
        private void lbtnCopyToClipboard_Clicked(object sender, EventArgs e)
        {
            if (lblOutput.Text != string.Empty)
            {
                Clipboard.SetText(lblOutput.Text);
                MessageBox.Show(lblOutput.Text + " has been copied to the clipboard", "Text Copied");
            }
            if (lblOutput.Text == string.Empty)
            {
                MessageBox.Show("Run the project before trying to copy the answer", "Nothing to copy");
            }
        }
        private void lblLastProjectCompleted_Click(object sender, EventArgs e)
        {
            lstProjects.SelectedIndex = lstProjects.Items.Count - 1;
        }
    }
}

Projects 1 - 10

Projects 11 - 20

Projects 21 - 30 (in progress)