Пишу программу вопросник, по типу "Кто хочет стать миллионером?". Использую связку page и frame для навигации по страницам. Я хочу сделать так, чтобы пользователю в цикле задавалось 15 вопросов, которые бы последовательно менялись. Т.е. как только пользователь правильно ответил на текущий вопрос, условное i увеличивается на 1, появляется следующий вопрос и игра продолжается так до конца. Однако, при переходе на page с самой игрой программа зависает пока цикл не дойдет до конца. Проблема в том, что именно это мне не нужно. Подскажите пожалуйста как это исправить или как правильно сделать паузы между вопросами.
for (int i = 1; i <= 15; i++)
{
do
{
number = rnd.Next(1, 147);
ok = false;
while (number % 5 != 0)
{
number = number - 1;
}
number++;
using (StreamReader sr = new StreamReader(readpath, Encoding.Default))
{
for (int j = 1; j <= number + 4; j++)
{
string line;
line = sr.ReadLine(); /*colvo <= 5*/
if (j == number)
{
mas[i].Text = line;
}
if (j == number + 1)
{
mas[i].TrueAnswer = line;
}
if (j == number + 2)
{
mas[i].FalseAnswer1 = line;
}
if (j == number + 3)
{
mas[i].FalseAnswer2 = line;
}
if (j == number + 4)
{
mas[i].FalseAnswer3 = line;
}
}
}
for (int k = 1; k <= 15; k++)
{
if (mas[k].Text == mas[i].Text && k != i)
{
ok = false;
}
else
{
ok = true;
}
}
lbl_question.Content = mas[i].Text;
true_answer = mas[i].TrueAnswer;
lbl_B.Content = mas[i].FalseAnswer1;
lbl_C.Content = mas[i].FalseAnswer2;
lbl_D.Content = mas[i].FalseAnswer3;
rnd_znach = rnd.Next(1, 4);
if (rnd_znach == 1)
{
lbl_A.Content = mas[i].TrueAnswer;
}
if (rnd_znach == 2)
{
lbl_A.Content = lbl_B.Content;
lbl_B.Content = mas[i].TrueAnswer;
}
if (rnd_znach == 3)
{
lbl_A.Content = lbl_C.Content;
lbl_C.Content = mas[i].TrueAnswer;
}
if (rnd_znach == 4)
{
lbl_A.Content = lbl_D.Content;
lbl_D.Content = mas[i].TrueAnswer;
}
} while (!ok);
}
Queue<T>– Bulson Feb 25 '18 at 08:04