//-----------------------------------------------------------------
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();
//Задать динамические свойства, исходя из того, в какое состояние