p-GeoGame / CSharp_GeographyGame / capitalsForm.cs
capitalsForm.cs
Raw
// States and Capitals on big map: https://i.pinimg.com/originals/dc/43/9b/dc439bcdc9241bed795275063616fec0.jpg

using System;
using System.ComponentModel;
using System.Windows.Forms;
using System.Configuration;
using System.Data.SqlClient;
using MySql.Data.MySqlClient;
using System.Drawing;
using Microsoft.VisualBasic;

namespace CSharp_GeographyGame
{
    public partial class capitalsForm : Form
    {
        string connectionString;
        SqlConnection connection;
        double corCount = 0;
        double perNum = 0.0;
        bool clockIt = false;
        string nID;

        public capitalsForm(string inName)
        {
            nID = inName;
            InitializeComponent();
            bgWorkerSt.DoWork += bgWorkerSt_DoWork;
            bgWorkerSt.ProgressChanged += bgWorkerSt_ProgressChanged;
            bgWorkerSt.WorkerReportsProgress = true;
            userToolStripMenuItem.Text = "User: " + nID;
            connectionString = ConfigurationManager.ConnectionStrings["CSharp_GeographyGame.Properties.Settings.userScoresConnectionString"].ConnectionString;
        }

        private void capitalsForm_Shown(object sender, EventArgs e)
        {
            bgWorkerSt.RunWorkerAsync();
        }

        private void insertDataLocally(double scoreID, string sqlFormattedDate)
        {
            //// FOR LOCAL DATABASE
            string con = "INSERT INTO USMapscores ([Name], [Score], [Time], [Date]) VALUES(@name, @score, @time, @date)";
            using (connection = new SqlConnection(connectionString))
            using (SqlCommand command = new SqlCommand(con, connection))
            {
                try
                {
                    connection.Open();
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
                command.Parameters.AddWithValue("@name", nID);
                command.Parameters.AddWithValue("@score", scoreID);
                command.Parameters.AddWithValue("@time", lblClock.Text);
                command.Parameters.AddWithValue("@date", sqlFormattedDate);
                int result = command.ExecuteNonQuery();
                // Check Error
                if (result < 0)
                    MessageBox.Show("Error inserting data into database!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                connection.Close();
            }
        }

        private void insertDataOnline(double scoreID, string sqlFormattedDate)
        {
            //// FOR ONLINE DATABASE
            string conWeb = "Server = remotemysql.com; Port = 3306; database = 2Ds6YxqaDW; username = 2Ds6YxqaDW; password = VJKMThFkcO";
            MySqlConnection connTwo = new MySqlConnection(conWeb);
            MySqlCommand commWeb = connTwo.CreateCommand();
            commWeb.CommandType = System.Data.CommandType.Text;
            commWeb.CommandText = "INSERT INTO onUSmapscores (Name, Score, Time, Date) VALUES(@name, @score, @time, @date)";
            commWeb.Parameters.AddWithValue("@name", nID);
            commWeb.Parameters.AddWithValue("@score", scoreID);
            commWeb.Parameters.AddWithValue("@time", lblClock.Text);
            commWeb.Parameters.AddWithValue("@date", sqlFormattedDate);
            try
            {
                connTwo.Open();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            commWeb.ExecuteNonQuery();
            connTwo.Close();
        }

        private void vbScoreInputDialog(double scoreID, string sqlFormattedDate)
        {
            //// Using microsoft.visualbasic reference allowing the user to choose where to submit his score (allows offline score submission)
            string message, title, defaultValue;
            object myValue;

            message = "Would you like to submit your results to the Local, Online, or Both databases?\n" +
                "Type the following in the textbox below:\n" +
                "Local\n" +
                "Online\n" +
                "Both";
            title = "Score Submission";
            defaultValue = "Both";

            bool validSelection = false;

            do
            {
                myValue = Interaction.InputBox(message, title, defaultValue); // input box

                if ((string)myValue == "")
                {
                    object uChoice = Microsoft.VisualBasic.Interaction.MsgBox("Are you sure you don't want to submit your score?", MsgBoxStyle.YesNo, "Score Submission");
                    if ((int)uChoice == 6)
                    {
                        System.Environment.Exit(0);
                    }
                    else
                    {
                        // do nothing, reset back to original input box
                    }
                }
                else if ((string)myValue == "Local" || (string)myValue == "local")
                {
                    insertDataLocally(scoreID, sqlFormattedDate);
                    validSelection = true;
                }
                else if ((string)myValue == "Online" || (string)myValue == "online")
                {
                    insertDataOnline(scoreID, sqlFormattedDate);
                    validSelection = true;
                }
                else if ((string)myValue == "Both" || (string)myValue == "both")
                {
                    insertDataLocally(scoreID, sqlFormattedDate);
                    insertDataOnline(scoreID, sqlFormattedDate);
                    validSelection = true;
                }
                else
                {
                    Microsoft.VisualBasic.Interaction.MsgBox("Wrong input entered... Please try again and this time, read.");
                }
            } while (validSelection == false);
            /////
        }

        private void bgWorkerSt_DoWork(object sender, DoWorkEventArgs e)
        {
            double cCount = 0;
            double prev = 0;
            pbStatusCap.Invoke((MethodInvoker)(() => pbStatusCap.Minimum = 0));
            pbStatusCap.Invoke((MethodInvoker)(() => pbStatusCap.Maximum = 50));
            while (true)
            {
                cCount = corCount;

                if (cCount > prev)
                {
                    prev = cCount;
                    pbStatusCap.Invoke((MethodInvoker)(() => pbStatusCap.Increment(1)));
                    bgWorkerSt.ReportProgress((int)cCount);
                }
                Application.DoEvents();

                if (cCount == 50)
                {
                    break; // ***is needed for the bgWorkerSt to end to run bgWorkerSt_RunWorkerCompleted
                }
            }
        }

        private void bgWorkerSt_ProgressChanged(object sender, ProgressChangedEventArgs e)
        {
            pbStatusCap.Value = e.ProgressPercentage;
        }

        private void bgWorkerSt_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
            if (e.Cancelled)
            {
                MessageBox.Show("Error. I suck.");
            }
            else if (e.Error != null)
            {
                MessageBox.Show("Ran into an unknown error... I really suck.");
            }
            else
            {
                if (lblCorrect.Text.ToString() == lblTotal.Text.ToString())
                {
                    lblClock.ForeColor = System.Drawing.Color.Green;
                }
                timerClockSt.Stop();
                i = 0;
                clockIt = false;
                tbsEnableDisable();
                System.Diagnostics.Process.Start("https://media1.giphy.com/media/2uI8XF2T6UT4vaFVEM/source.gif");
                string xTract = lblPercentage.Text.Trim(new Char[] { '%', '*', '.' });
                int xConversion;
                Int32.TryParse(xTract, out xConversion);
                double scoreID = xConversion;
                DateTime myDateTime = DateTime.Now;
                string sqlFormattedDate = myDateTime.ToString("MM-dd-yyyy HH:mm:ss.fff");

                vbScoreInputDialog(scoreID, sqlFormattedDate);

                DialogResult diaBox;
                diaBox = MessageBox.Show("Remarkable! Would you like to clear the form (yes) or keep gazing at your exceptional results (no)?", "Congratulations", MessageBoxButtons.YesNo, MessageBoxIcon.Information);
                if (diaBox == DialogResult.Yes)
                {
                    lblClock.ForeColor = System.Drawing.Color.Black;
                    ResetText();
                    lblClock.Text = "00:00:00";
                    pbStatusCap.Value = 0;
                    lblPercentage.Text = "%";
                    btnPause.Enabled = false;
                    btnQuit.Enabled = false;
                }
                if (diaBox == DialogResult.No)
                {
                    btnBegin.Enabled = false;
                    btnPause.Enabled = false;
                    btnQuit.Enabled = false;
                }

            }

        }

        private void PercentageFormula()
        {
            perNum = ((corCount / 50) * 100);
            lblPercentage.Text = perNum.ToString("0.###") + "%";
        }

        private void tbsClearIncorrectText()
        {
            foreach (Control tb in this.Controls)
            {
                if (tb is TextBox)
                {
                    if (((TextBox)tb).Enabled == true && !String.IsNullOrEmpty(((TextBox)tb).Text))
                    {
                        ((TextBox)tb).Text = String.Empty;
                    }
                }

            }
        }

        private void tbsEnableDisable()
        {
            if (clockIt == true)
            {
                foreach (Control tb in this.Controls)
                {
                    if (tb is TextBox)
                    {
                        ((TextBox)tb).Enabled = true;

                        if (!String.IsNullOrEmpty(((TextBox)tb).Text))  // recently added feature 10/29/2020 - Needed so Correct States are not enabled for editing during pause
                        {
                            ((TextBox)tb).Enabled = false;
                        }
                    }
                }
            }
            else
            {
                foreach (Control tb in this.Controls)
                {
                    if (tb is TextBox)
                    {
                        ((TextBox)tb).Enabled = false;
                    }
                }
            }
        }

        private void clearTextBoxes()
        {
            foreach (Control tb in this.Controls)
            {
                if (tb is TextBox)
                {
                    ((TextBox)tb).Text = String.Empty;
                    ((TextBox)tb).BackColor = SystemColors.Window; // Window is correct over System.Drawing.Color.White which fixes the disabled textboxes color
                }
            }
        }

        int i = 0;
        private void timerClockSt_Tick(object sender, EventArgs e)
        {
            i++;
            if (lblClock.ForeColor == System.Drawing.Color.Red)
            {
                lblClock.ForeColor = System.Drawing.Color.Blue;
            }
            TimeSpan time = TimeSpan.FromSeconds(i);
            lblClock.Text = time.ToString(@"hh\:mm\:ss");
        }

        private void btnBegin_Click(object sender, EventArgs e)
        {
            clockIt = true;
            tbsEnableDisable();
            lblClock.ForeColor = System.Drawing.Color.Blue;
            timerClockSt.Stop();
            timerClockSt.Start();
            btnBegin.Enabled = false;

            if (btnPause.Enabled == false || btnQuit.Enabled == false)
            {
                btnPause.Enabled = true;
                btnQuit.Enabled = true;
            }
        }

        private void btnPause_Click(object sender, EventArgs e)
        {
            clockIt = false;
            timerClockSt.Stop();
            tbsClearIncorrectText(); // recently added feature 10/29/2020 - Removes incorrect text from enabled textboxes
            tbsEnableDisable();
            lblClock.ForeColor = System.Drawing.Color.Red;

            if (btnBegin.Enabled == false)
            {
                btnBegin.Text = "Resume";
                btnBegin.Enabled = true;
            }

            btnPause.Enabled = false;
        }

        private void btnQuit_Click(object sender, EventArgs e)
        {
            timerClockSt.Stop();
            string xTract = lblPercentage.Text.Trim(new Char[] { '%', '*', '.' });
            int xConversion;
            Int32.TryParse(xTract, out xConversion);
            double scoreID = xConversion;
            DateTime myDateTime = DateTime.Now;
            string sqlFormattedDate = myDateTime.ToString("MM-dd-yyyy HH:mm:ss.fff");

            vbScoreInputDialog(scoreID, sqlFormattedDate);

            i = 0;
            clockIt = false;
            //clearTextBoxes();
            lblClock.ForeColor = System.Drawing.Color.Black;
            lblClock.Text = "00:00:00";
            //tbsEnableDisable();
            lblCorrect.Text = 0.ToString();
            lblPercentage.Text = "%";
            pbStatusCap.Value = 0;

            tbsFillCorrectCapitals(); // for this feature to work, the function tbsEnableDisable must be moved below current function. clearTextBoxes must move to end of function.
            tbsEnableDisable();

            MessageBox.Show(new Form { TopMost = true }, "This is much tougher than the map. Give it another go! Answers will be removed once this message box is closed.", "Score Submitted");
            if (btnBegin.Enabled == false || btnPause.Enabled == false)
            {
                btnBegin.Text = "Begin";
                btnBegin.Enabled = true;
                btnPause.Enabled = true;
            }

            btnPause.Enabled = false;
            btnQuit.Enabled = false;
            clearTextBoxes();
        }

        private void capitalsForm_Load(object sender, EventArgs e)
        {
            tbsEnableDisable();
            btnPause.Enabled = false;
            btnQuit.Enabled = false;
        }

        private void tbsFillCorrectCapitals()
        {
            string[] correctCapitals = new string[50]
            {
            "*Dover", "*Harrisburg", "*Trenton", "*Atlanta", "*Hartford", "*Boston", "*Annapolis", "*Columbia", "*Concord", "*Richmond",
            "*Albany", "*Raleigh", "*Providence", "*Montpelier", "*Frankfort", "*Nashville", "*Columbus", "*Baton Rouge", "*Indianapolis", "*Jackson",
            "*Springfield", "*Montgomery", "*Augusta", "*Jefferson City", "*Little Rock", "*Lansing", "*Tallahassee", "*Austin", "*Des Moines", "*Madison",
            "*Sacramento", "*Saint Paul", "*Salem", "*Topeka", "*Charleston", "*Carson City", "*Lincoln", "*Denver", "*Bismarck", "*Pierre",
            "*Helena", "*Olympia", "*Boise", "*Cheyenne", "*Salt Lake City", "*Oklahoma City", "*Santa Fe", "*Phoenix", "*Juneau", "*Honolulu"
            };

            var textboxArray = new[]
            {
                tb1, tb2, tb3, tb4, tb5, tb6, tb7, tb8, tb9, tb10,
                tb11, tb12, tb13, tb14, tb15, tb16, tb17, tb18, tb19, tb20,
                tb21, tb22, tb23, tb24, tb25, tb26, tb27, tb28, tb29, tb30,
                tb31, tb32, tb33, tb34, tb35, tb36, tb37, tb38, tb39, tb40,
                tb41, tb42, tb43, tb44, tb45, tb46, tb47, tb48, tb49, tb50
            };

            for (int i = 0; i < 50; i++)
            {
                if (textboxArray[i].Enabled == false && !String.IsNullOrEmpty((textboxArray[i]).Text))
                {
                    // Do nothing, keep correct answers written by user
                }
                else
                {
                    textboxArray[i].BackColor = System.Drawing.Color.MistyRose;
                    textboxArray[i].Text = correctCapitals[i];
                }
            }
        }

        string[] capVals = new string[]
        {
            "dover", "harrisburg", "trenton", "atlanta", "hartford", "boston", "annapolis", "columbia", "concord", "richmond",
            "albany", "raleigh", "providence", "montpelier", "frankfort", "nashville", "columbus", "baton rouge", "indianapolis", "jackson",
            "springfield", "montgomery", "augusta", "jefferson city", "little rock", "lansing", "tallahassee", "austin", "des moines", "madison",
            "sacramento", "saint paul", "salem", "topeka", "charleston", "carson city", "lincoln", "denver", "bismarck", "pierre",
            "helena", "olympia", "boise", "cheyenne", "salt lake city", "oklahoma city", "santa fe", "phoenix", "juneau", "honolulu"
        };

        private void tb1_TextChanged(object sender, EventArgs e)
        {
            if (string.Compare(tb1.Text, capVals[0], true) == 0)
            {
                corCount++;
                lblCorrect.Text = corCount.ToString();
                tb1.Enabled = false;
                PercentageFormula();
            }
        }

        private void tb2_TextChanged(object sender, EventArgs e)
        {
            if (string.Compare(tb2.Text, capVals[1], true) == 0)
            {
                corCount++;
                lblCorrect.Text = corCount.ToString();
                tb2.Enabled = false;
                PercentageFormula();
            }
        }

        private void tb3_TextChanged(object sender, EventArgs e)
        {
            if (string.Compare(tb3.Text, capVals[2], true) == 0)
            {
                corCount++;
                lblCorrect.Text = corCount.ToString();
                tb3.Enabled = false;
                PercentageFormula();
            }
        }

        private void tb4_TextChanged(object sender, EventArgs e)
        {
            if (string.Compare(tb4.Text, capVals[3], true) == 0)
            {
                corCount++;
                lblCorrect.Text = corCount.ToString();
                tb4.Enabled = false;
                PercentageFormula();
            }
        }

        private void tb5_TextChanged(object sender, EventArgs e)
        {
            if (string.Compare(tb5.Text, capVals[4], true) == 0)
            {
                corCount++;
                lblCorrect.Text = corCount.ToString();
                tb5.Enabled = false;
                PercentageFormula();
            }
        }

        private void tb6_TextChanged(object sender, EventArgs e)
        {
            if (string.Compare(tb6.Text, capVals[5], true) == 0)
            {
                corCount++;
                lblCorrect.Text = corCount.ToString();
                tb6.Enabled = false;
                PercentageFormula();
            }
        }

        private void tb7_TextChanged(object sender, EventArgs e)
        {
            if (string.Compare(tb7.Text, capVals[6], true) == 0)
            {
                corCount++;
                lblCorrect.Text = corCount.ToString();
                tb7.Enabled = false;
                PercentageFormula();
            }
        }

        private void tb8_TextChanged(object sender, EventArgs e)
        {
            if (string.Compare(tb8.Text, capVals[7], true) == 0)
            {
                corCount++;
                lblCorrect.Text = corCount.ToString();
                tb8.Enabled = false;
                PercentageFormula();
            }
        }

        private void tb9_TextChanged(object sender, EventArgs e)
        {
            if (string.Compare(tb9.Text, capVals[8], true) == 0)
            {
                corCount++;
                lblCorrect.Text = corCount.ToString();
                tb9.Enabled = false;
                PercentageFormula();
            }
        }

        private void tb10_TextChanged(object sender, EventArgs e)
        {
            if (string.Compare(tb10.Text, capVals[9], true) == 0)
            {
                corCount++;
                lblCorrect.Text = corCount.ToString();
                tb10.Enabled = false;
                PercentageFormula();
            }
        }

        private void tb11_TextChanged(object sender, EventArgs e)
        {
            if (string.Compare(tb11.Text, capVals[10], true) == 0)
            {
                corCount++;
                lblCorrect.Text = corCount.ToString();
                tb11.Enabled = false;
                PercentageFormula();
            }
        }

        private void tb12_TextChanged(object sender, EventArgs e)
        {
            if (string.Compare(tb12.Text, capVals[11], true) == 0)
            {
                corCount++;
                lblCorrect.Text = corCount.ToString();
                tb12.Enabled = false;
                PercentageFormula();
            }
        }

        private void tb13_TextChanged(object sender, EventArgs e)
        {
            if (string.Compare(tb13.Text, capVals[12], true) == 0)
            {
                corCount++;
                lblCorrect.Text = corCount.ToString();
                tb13.Enabled = false;
                PercentageFormula();
            }
        }

        private void tb14_TextChanged(object sender, EventArgs e)
        {
            if (string.Compare(tb14.Text, capVals[13], true) == 0)
            {
                corCount++;
                lblCorrect.Text = corCount.ToString();
                tb14.Enabled = false;
                PercentageFormula();
            }
        }

        private void tb15_TextChanged(object sender, EventArgs e)
        {
            if (string.Compare(tb15.Text, capVals[14], true) == 0)
            {
                corCount++;
                lblCorrect.Text = corCount.ToString();
                tb15.Enabled = false;
                PercentageFormula();
            }
        }

        private void tb16_TextChanged(object sender, EventArgs e)
        {
            if (string.Compare(tb16.Text, capVals[15], true) == 0)
            {
                corCount++;
                lblCorrect.Text = corCount.ToString();
                tb16.Enabled = false;
                PercentageFormula();
            }
        }

        private void tb17_TextChanged(object sender, EventArgs e)
        {
            if (string.Compare(tb17.Text, capVals[16], true) == 0)
            {
                corCount++;
                lblCorrect.Text = corCount.ToString();
                tb17.Enabled = false;
                PercentageFormula();
            }
        }

        private void tb18_TextChanged(object sender, EventArgs e)
        {
            if (string.Compare(tb18.Text, capVals[17], true) == 0)
            {
                corCount++;
                lblCorrect.Text = corCount.ToString();
                tb18.Enabled = false;
                PercentageFormula();
            }
        }

        private void tb19_TextChanged(object sender, EventArgs e)
        {
            if (string.Compare(tb19.Text, capVals[18], true) == 0)
            {
                corCount++;
                lblCorrect.Text = corCount.ToString();
                tb19.Enabled = false;
                PercentageFormula();
            }
        }

        private void tb20_TextChanged(object sender, EventArgs e)
        {
            if (string.Compare(tb20.Text, capVals[19], true) == 0)
            {
                corCount++;
                lblCorrect.Text = corCount.ToString();
                tb20.Enabled = false;
                PercentageFormula();
            }
        }

        private void tb21_TextChanged(object sender, EventArgs e)
        {
            if (string.Compare(tb21.Text, capVals[20], true) == 0)
            {
                corCount++;
                lblCorrect.Text = corCount.ToString();
                tb21.Enabled = false;
                PercentageFormula();
            }
        }

        private void tb22_TextChanged(object sender, EventArgs e)
        {
            if (string.Compare(tb22.Text, capVals[21], true) == 0)
            {
                corCount++;
                lblCorrect.Text = corCount.ToString();
                tb22.Enabled = false;
                PercentageFormula();
            }
        }

        private void tb23_TextChanged(object sender, EventArgs e)
        {
            if (string.Compare(tb23.Text, capVals[22], true) == 0)
            {
                corCount++;
                lblCorrect.Text = corCount.ToString();
                tb23.Enabled = false;
                PercentageFormula();
            }
        }

        private void tb24_TextChanged(object sender, EventArgs e)
        {
            if (string.Compare(tb24.Text, capVals[23], true) == 0)
            {
                corCount++;
                lblCorrect.Text = corCount.ToString();
                tb24.Enabled = false;
                PercentageFormula();
            }
        }

        private void tb25_TextChanged(object sender, EventArgs e)
        {
            if (string.Compare(tb25.Text, capVals[24], true) == 0)
            {
                corCount++;
                lblCorrect.Text = corCount.ToString();
                tb25.Enabled = false;
                PercentageFormula();
            }
        }

        private void tb26_TextChanged(object sender, EventArgs e)
        {
            if (string.Compare(tb26.Text, capVals[25], true) == 0)
            {
                corCount++;
                lblCorrect.Text = corCount.ToString();
                tb26.Enabled = false;
                PercentageFormula();
            }
        }

        private void tb27_TextChanged(object sender, EventArgs e)
        {
            if (string.Compare(tb27.Text, capVals[26], true) == 0)
            {
                corCount++;
                lblCorrect.Text = corCount.ToString();
                tb27.Enabled = false;
                PercentageFormula();
            }
        }

        private void tb28_TextChanged(object sender, EventArgs e)
        {
            if (string.Compare(tb28.Text, capVals[27], true) == 0)
            {
                corCount++;
                lblCorrect.Text = corCount.ToString();
                tb28.Enabled = false;
                PercentageFormula();
            }
        }

        private void tb29_TextChanged(object sender, EventArgs e)
        {
            if (string.Compare(tb29.Text, capVals[28], true) == 0)
            {
                corCount++;
                lblCorrect.Text = corCount.ToString();
                tb29.Enabled = false;
                PercentageFormula();
            }
        }

        private void tb30_TextChanged(object sender, EventArgs e)
        {
            if (string.Compare(tb30.Text, capVals[29], true) == 0)
            {
                corCount++;
                lblCorrect.Text = corCount.ToString();
                tb30.Enabled = false;
                PercentageFormula();
            }
        }

        private void tb31_TextChanged(object sender, EventArgs e)
        {
            if (string.Compare(tb31.Text, capVals[30], true) == 0)
            {
                corCount++;
                lblCorrect.Text = corCount.ToString();
                tb31.Enabled = false;
                PercentageFormula();
            }
        }

        private void tb32_TextChanged(object sender, EventArgs e)
        {
            if (string.Compare(tb32.Text, capVals[31], true) == 0)
            {
                corCount++;
                lblCorrect.Text = corCount.ToString();
                tb32.Enabled = false;
                PercentageFormula();
            }
        }

        private void tb33_TextChanged(object sender, EventArgs e)
        {
            if (string.Compare(tb33.Text, capVals[32], true) == 0)
            {
                corCount++;
                lblCorrect.Text = corCount.ToString();
                tb33.Enabled = false;
                PercentageFormula();
            }
        }

        private void tb34_TextChanged(object sender, EventArgs e)
        {
            if (string.Compare(tb34.Text, capVals[33], true) == 0)
            {
                corCount++;
                lblCorrect.Text = corCount.ToString();
                tb34.Enabled = false;
                PercentageFormula();
            }
        }

        private void tb35_TextChanged(object sender, EventArgs e)
        {
            if (string.Compare(tb35.Text, capVals[34], true) == 0)
            {
                corCount++;
                lblCorrect.Text = corCount.ToString();
                tb35.Enabled = false;
                PercentageFormula();
            }
        }

        private void tb36_TextChanged(object sender, EventArgs e)
        {
            if (string.Compare(tb36.Text, capVals[35], true) == 0)
            {
                corCount++;
                lblCorrect.Text = corCount.ToString();
                tb36.Enabled = false;
                PercentageFormula();
            }
        }

        private void tb37_TextChanged(object sender, EventArgs e)
        {
            if (string.Compare(tb37.Text, capVals[36], true) == 0)
            {
                corCount++;
                lblCorrect.Text = corCount.ToString();
                tb37.Enabled = false;
                PercentageFormula();
            }
        }

        private void tb38_TextChanged(object sender, EventArgs e)
        {
            if (string.Compare(tb38.Text, capVals[37], true) == 0)
            {
                corCount++;
                lblCorrect.Text = corCount.ToString();
                tb38.Enabled = false;
                PercentageFormula();
            }
        }

        private void tb39_TextChanged(object sender, EventArgs e)
        {
            if (string.Compare(tb39.Text, capVals[38], true) == 0)
            {
                corCount++;
                lblCorrect.Text = corCount.ToString();
                tb39.Enabled = false;
                PercentageFormula();
            }
        }

        private void tb40_TextChanged(object sender, EventArgs e)
        {
            if (string.Compare(tb40.Text, capVals[39], true) == 0)
            {
                corCount++;
                lblCorrect.Text = corCount.ToString();
                tb40.Enabled = false;
                PercentageFormula();
            }
        }

        private void tb41_TextChanged(object sender, EventArgs e)
        {
            if (string.Compare(tb41.Text, capVals[40], true) == 0)
            {
                corCount++;
                lblCorrect.Text = corCount.ToString();
                tb41.Enabled = false;
                PercentageFormula();
            }
        }

        private void tb42_TextChanged(object sender, EventArgs e)
        {
            if (string.Compare(tb42.Text, capVals[41], true) == 0)
            {
                corCount++;
                lblCorrect.Text = corCount.ToString();
                tb42.Enabled = false;
                PercentageFormula();
            }
        }

        private void tb43_TextChanged(object sender, EventArgs e)
        {
            if (string.Compare(tb43.Text, capVals[42], true) == 0)
            {
                corCount++;
                lblCorrect.Text = corCount.ToString();
                tb43.Enabled = false;
                PercentageFormula();
            }
        }

        private void tb44_TextChanged(object sender, EventArgs e)
        {
            if (string.Compare(tb44.Text, capVals[43], true) == 0)
            {
                corCount++;
                lblCorrect.Text = corCount.ToString();
                tb44.Enabled = false;
                PercentageFormula();
            }
        }

        private void tb45_TextChanged(object sender, EventArgs e)
        {
            if (string.Compare(tb45.Text, capVals[44], true) == 0)
            {
                corCount++;
                lblCorrect.Text = corCount.ToString();
                tb45.Enabled = false;
                PercentageFormula();
            }
        }

        private void tb46_TextChanged(object sender, EventArgs e)
        {
            if (string.Compare(tb46.Text, capVals[45], true) == 0)
            {
                corCount++;
                lblCorrect.Text = corCount.ToString();
                tb46.Enabled = false;
                PercentageFormula();
            }
        }

        private void tb47_TextChanged(object sender, EventArgs e)
        {
            if (string.Compare(tb47.Text, capVals[46], true) == 0)
            {
                corCount++;
                lblCorrect.Text = corCount.ToString();
                tb47.Enabled = false;
                PercentageFormula();
            }
        }

        private void tb48_TextChanged(object sender, EventArgs e)
        {
            if (string.Compare(tb48.Text, capVals[47], true) == 0)
            {
                corCount++;
                lblCorrect.Text = corCount.ToString();
                tb48.Enabled = false;
                PercentageFormula();
            }
        }

        private void tb49_TextChanged(object sender, EventArgs e)
        {
            if (string.Compare(tb49.Text, capVals[48], true) == 0)
            {
                corCount++;
                lblCorrect.Text = corCount.ToString();
                tb49.Enabled = false;
                PercentageFormula();
            }
        }

        private void tb50_TextChanged(object sender, EventArgs e)
        {
            if (string.Compare(tb50.Text, capVals[49], true) == 0)
            {
                corCount++;
                lblCorrect.Text = corCount.ToString();
                tb50.Enabled = false;
                PercentageFormula();
            }
        }

        private void capitalsForm_FormClosing(object sender, FormClosingEventArgs e)
        {
            bool isOpen = false;
            FormCollection formsOpen = Application.OpenForms;

            foreach (Form frm in formsOpen)
            {
                //iterate through
                if (frm.Name == "mainForm")
                {
                    isOpen = true;
                    return;
                }
                else
                {
                    isOpen = false;
                }
            }

            if (isOpen == false)
            {
                FormProvider.gForm.Show();
            }
        }

        private void goBackToGameMenuToolStripMenuItem_Click(object sender, EventArgs e)
        {
            FormProvider.gForm.Show();
            this.Close();
        }

        private void capitalsOfStatesToolStripMenuItem_Click(object sender, EventArgs e)
        {
            System.Diagnostics.Process.Start("https://www.britannica.com/topic/list-of-state-capitals-in-the-United-States-2119210");
        }

        private void viewDatabaseScoresToolStripMenuItem_Click(object sender, EventArgs e)
        {
            bool isOpen = false;

            foreach (Form F in Application.OpenForms)
            {
                if (F.Name == "dbscoresForm")
                {
                    isOpen = true;
                    F.BringToFront();
                }
            }
            if (isOpen == false)
            {
                dbscoresForm dbF = new dbscoresForm();
                dbF.Show();
            }
        }

        private void trainerInformationToolStripMenuItem_Click(object sender, EventArgs e)
        {
            bool isOpen = false;

            foreach (Form F in Application.OpenForms)
            {
                if (F.Name == "infoForm")
                {
                    isOpen = true;
                    F.BringToFront();
                }
            }
            if (isOpen == false)
            {
                infoForm inf = new infoForm();
                inf.Show();
            }
        }
    }
}