コード例 #1
0
        private void Button_Clicked(object sender, EventArgs e)
        {
            if (sender is Button)
            {
                Button btnQuestion = (Button)sender;
                string sQuestion = btnQuestion.Name;
                sQuestion = sQuestion.Remove(0, 3);
                //MessageBox.Show(sQuestion);

                // get category of selected question
                switch (sQuestion[0])
                {
                    case 'A':
                        oCategory = oCategories[0];
                        break;
                    case 'B':
                        oCategory = oCategories[1];
                        break;
                    case 'C':
                        oCategory = oCategories[2];
                        break;
                    case 'D':
                        oCategory = oCategories[3];
                        break;
                    case 'E':
                        oCategory = oCategories[4];
                        break;
                    case 'F':
                        oCategory = oCategories[5];
                        break;
                }
                int iQuestID;
                int.TryParse(sQuestion.Remove(0, 1), out iQuestID);

                int iCost;

                // check for daily double
                if (sQuestion == sDailyDouble)
                {
                    // is daily double
                    frmBetQuestion oBetQuestionForm = new frmBetQuestion(oCategories[char.ConvertToUtf32(sQuestion, 0) - 65].Description, oCategory[iQuestID - 1], iScore, false);
                    oBetQuestionForm.ShowDialog();

                    iCost = oBetQuestionForm.Bet;
                }
                else
                {
                    iCost = oCategory[iQuestID - 1].Cost;
                }

                frmQuestion oQuestionForm = new frmQuestion(oCategory[iQuestID - 1], false);
                oQuestionForm.ShowDialog();

                // manage score
                if (oQuestionForm.AnswerState == 0)
                {
                    // didnt answer
                    string sAnswerDescription = oCategory[iQuestID - 1][oCategory[iQuestID - 1].CorrectAnswerID].Description;
                    lblLastQuestion.Text = string.Format("Passed, answer was: {0}", sAnswerDescription);
                }
                else if (oQuestionForm.AnswerState == 1)
                {
                    // answer good
                    iScore += iCost;
                    string sAnswerDescription = oCategory[iQuestID - 1][oCategory[iQuestID - 1].CorrectAnswerID].Description;
                    lblLastQuestion.Text = string.Format("{0} is Correct!", sAnswerDescription);
                }
                else
                {
                    // bad answer
                    iScore -= iCost;
                    string sAnswerDescription = oCategory[iQuestID - 1][oCategory[iQuestID - 1].CorrectAnswerID].Description;
                    lblLastQuestion.Text = string.Format("Incorrect, answer was: {0}", sAnswerDescription);
                }
                lblScore.Text = string.Format("Score: {0}", iScore);

                btnQuestion.Enabled = false;

                if (CheckForEnd())
                {
                    // all questions used, final jeopardy

                    oCategory = new cCategory();
                    oCategory.FillFinal();
                    oCategory.FillCategory();

                    frmBetQuestion oFinalQuestionForm = new frmBetQuestion(oCategory.Description, oCategory[0], iScore, true);
                    oFinalQuestionForm.ShowDialog();

                    iCost = oFinalQuestionForm.Bet;

                    oQuestionForm = new frmQuestion(oCategory[0], true);
                    oQuestionForm.ShowDialog();

                    // manage score
                    if (oQuestionForm.AnswerState == 0)
                    {
                        // didnt answer
                        string sAnswerDescription = oCategory[iQuestID - 1][oCategory[iQuestID - 1].CorrectAnswerID].Description;
                        lblLastQuestion.Text = string.Format("Passed, answer was: {0}", sAnswerDescription);
                    }
                    else if (oQuestionForm.AnswerState == 1)
                    {
                        // answer good
                        iScore += iCost;
                        string sAnswerDescription = oCategory[iQuestID - 1][oCategory[iQuestID - 1].CorrectAnswerID].Description;
                        lblLastQuestion.Text = string.Format("{0} is Correct!", sAnswerDescription);
                    }
                    else
                    {
                        // bad answer
                        iScore -= iCost;
                        string sAnswerDescription = oCategory[iQuestID - 1][oCategory[iQuestID - 1].CorrectAnswerID].Description;
                        lblLastQuestion.Text = string.Format("Incorrect, answer was: {0}", sAnswerDescription);
                    }

                    lblScore.Text = string.Format("Score: {0}", iScore);
                }
            }
        }