У меня есть домашнее задание. У меня уже есть метод, который генерирует 20 случайных идентификаторов вопросов, которые затем отправляются на сервер sql, где с помощью запросов я могу получить вопросы и возможные ответы в массивах. Но я бы сделал игру похожей на игру, чтобы одна кнопка запускалась и пошагово задавала вопрос, сохраняла выбранный ответ и проверяла, правильный ли он. В настоящее время я думал об использовании цикла for с предварительно сгенерированными идентификаторами вопросов для получения и отображения вопроса / ответов, а затем после того, как пользователь щелкнет по другому ubtton, он автоматически перейдет к следующему. Таким образом, потребуется способ подождать, пока кнопка не нажмет, или лучше использовать решение вместо цикла foreach. Я бы просто использовал метод get question один за другим, поэтому один метод get, одна проверка на правильность, затем следующий.
Попытка играть асинхронными методами безуспешно.
private void button1_Click(object sender, EventArgs e)
{
//foreach (var item in Random())
//{
DisplayAnswers(1);
_wait.WaitOne();
DisplayAnswers(2);
_wait2.Set();
// }
}
private async void button2_Click(object sender, EventArgs e)
{
CheckAnswer(1);
_wait.Set();
_wait2.WaitOne();
CheckAnswer(1);
}
public void DisplayAnswers(int questionid)
{
label1.Text = data.GetAnswers(questionid)[0];
label2.Text = data.GetAnswers(questionid)[1];
label3.Text = data.GetAnswers(questionid)[2];
label4.Text = data.GetAnswers(questionid)[3];
mentettvalasz = false;
}
public void CheckAnswer(int questionid)
{
if (valasz1.Checked == true)
{
answernumber = 1;
}
if (valasz2.Checked == true)
{
answernumber = 2;
}
if (valasz3.Checked == true)
{
answernumber = 3;
}
if (valasz4.Checked == true)
{
answernumber = 4;
}
if (answernumber == data.GetCorrectAnswerID(questionid))
{
MessageBox.Show("jo valasz!");
}
else if (answernumber != data.GetCorrectAnswerID(questionid))
{
MessageBox.Show("Nem jo valasz!");
}
mentettvalasz = true;
}
public int[] Random()
{
int x = 0;
x =+ data.GetQuestionAmount(1);
x =+ +data.GetQuestionAmount(2);
x =+ +data.GetQuestionAmount(3);
x =+ +data.GetQuestionAmount(4);
x =+ +data.GetQuestionAmount(5);
x =+ +data.GetQuestionAmount(6);
Random rnd = new Random();
int[] questionarray = new int[20];
for (int i=0; i<20;i++)
{
questionarray[i]=rnd.Next(1, x);
}
return questionarray;
}