Выбрать главу

//-----------------------------------------------------------------

private void SetDifficultyButtonVisibility(bool visibleState) {

 buttonShowAnswers_AdvancedVersion.Visible = visibleState;

 buttonShowAnswers_SimpleVersion.Visible = visibleState;

}

//-------------------------------------------------------------

//Вспомогательная функция, которая позволяет задавать состояние

//видимости кнопок, отображающих ответы из словаря

//-------------------------------------------------------------

private void SetAnswerButtonEnabled(bool enabledState) {

 buttonAnswer0.Enabled = enabledState;

 buttonAnswer1.Enabled = enabledState;

 buttonAnswer2.Enabled = enabledState;

 buttonAnswer3.Enabled = enabledState;

 buttonAnswer4.Enabled = enabledState;

 buttonAnswer5.Enabled = enabledState;

}

//-----------------------------------------------------------------

//Задает текст в текстовом окне и кнопках,

//необходимых для формулирования вопросов.

//

//B случае практической реализации эта функция должна просматривать

//вопросы динамически

//-----------------------------------------------------------------

private void SetTextForVocabularyQuestion() {

 setQuestionText("What is the English word for 'der Mensch'?");

 buttonAnswer0.Text = "Four";

 buttonAnswer1.Text = "Person";

 buttonAnswer2.Text = "Three";

 buttonAnswer3.Text = "To Jump";

 buttonAnswer4.Text = "Newspaper";

 buttonAnswer5.Text = "Brother";

}

//Вызывается для оценки варианта ответа, выбранного пользователем

private void evaluateMultipleChoiceAnswer(Button buttonClicked, int selection) {

 //Примечание: в практической реализации правильный номер ответа

 //определяется динамически и не всегда соответствует "кнопке № 1"

 //Если выбранный пользователем вариант ответа не является правильным,

 //отменить доступ к нажатой кнопке

 if  (selection ! = 1) {

  //Выбранный вариант ответа является неправильным

  buttonClicked.Enabled = false;

 } else {

  //Пользователь выбрал правильный ответ, продолжить игру

  StateChangeForGameUI(GameUIState.waitForNextQuestion);

 }

}

//Абстракция, задающая текст вопросов

void setQuestionText(string textIn) {

 textBoxAskQuestion.Text = textIn;

}

//----------------------------------------------------------------

//ОБРАБОТЧИК СОБЫТИЙ: Пользователь желает увидеть следующий вопрос

//----------------------------------------------------------------

private void buttonAskQuestion_Click(object sender, System.EventArgs e) {

 SetTextForVocabularyQuestion();

 StateChangeForGameUI(GameUIState.waitForUserToStateKnowledge);

}

//---------------------------------------------------------------------

//ОБРАБОТЧИК СОБЫТИЙ:

//Пользователь желает ответить на отображенный вопрос и сообщить, какой

//наиболее сложный уровень является для него приемлемым

//---------------------------------------------------------------------

private void buttonShowAnswers_AdvancedVersion_Click(object sender, System.EventArgs e) {

 //Установить состояние игры для отображения вариантов выбора

 StateChangeForGameUI(GameUIState.waitForUserToAnswerMultipleChoice);

}

//---------------------------------------------------------------------

//ОБРАБОТЧИК СОБЫТИЙ:

//Пользователь желает ответить на отображенный вопрос и сообщить, какой

//наиболее легкий уровень является для него приемлемым

//---------------------------------------------------------------------

private void buttonShowAnswers_SimpleVersion_Click(object sender, System.EventArgs e) {

 //Установить состояние игры для отображения вариантов выбора

 StateChangeForGameUI(GameUIState.waitForUserToAnswerMultipleChoice);

}

//ОБРАБОТЧИК СОБЫТИЙ: Был выполнен щелчок на кнопке выбора варианта ответа

private void buttonAnswer0_Click(object sender, System.EventArgs e) {

 evaluateMultipleChoiceAnswer(buttonAnswer0, 0);

}

//ОБРАБОТЧИК СОБЫТИЙ: Был выполнен щелчок на кнопке выбора варианта ответа

private void buttonAnswer1_Click(object sender, System.EventArgs e) {

 evaluateMultipleChoiceAnswer(buttonAnswer1, 1);

}

//ОБРАБОТЧИК СОБЫТИЙ: Был выполнен щелчок на кнопке выбора варианта ответа

private void buttonAnswer2_Click(object sender, System.EventArgs e) {

 evaluateMultipleChoiceAnswer(buttonAnswer2, 2);

}

//ОБРАБОТЧИК СОБЫТИЙ: Был выполнен щелчок на кнопке выбора варианта ответа

private void buttonAnswer3_Click(object sender, System.EventArgs e) {

 evaluateMultipleChoiceAnswer(buttonAnswer3, 3);

}

//ОБРАБОТЧИК СОБЫТИЙ: Был выполнен щелчок на кнопке выбора варианта ответа

private void buttonAnswer4_Click(object sender, System.EventArgs e) {

 evaluateMultipleChoiceAnswer(buttonAnswer4, 4);

}

//ОБРАБОТЧИК СОБЫТИЙ: Был выполнен щелчок на кнопке выбора варианта ответа

private void buttonAnswer5_Click(object sender, System.EventArgs e) {

 evaluateMultipleChoiceAnswer(buttonAnswer5, 5);

}

//-------------------------------------------------

//ОБРАБОТЧИК СОБЫТИЙ: Вызывается при загрузке формы

//-------------------------------------------------

private void Form1_Load(object sender, System.EventArgs e) {

 //Задать статические свойства нашего визуального интерфейса

 SetStartControlPositionAndState();

 //Задать динамические свойства, исходя из того, в какое состояние