Мне нужно создать викторину с использованием строкового массива, и будет отображаться бегущая оценка, будет добавлена одна точка для каждого правильного ответа и один раз вычитается для каждого неправильного ответа. У меня есть первый вопрос, который хорошо работает, я просто не знаю, как это сделать для следующих. У меня есть только одна кнопка отправки, поэтому весь код для первого вопроса подключен к этой кнопке. Как мне это сделать, когда вы отправляете свой второй ответ, он говорит вам, что он правильно, а затем движется дальше? Мне сказали, что цикл for будет хорошо работать с этим, но я не знаю, как его реализовать.Создайте тест с несколькими вариантами с массивами в C#
int score = 0;
int i = -1;
int a = 0;
string[] questions = new string[] {
"What is 9 cubed?",
"What is 6+3?",
"What type of animal is tuna sandwiches made from?",
"What is 18 backwards?" };
string[] answers = new string[] {
"9", "81", "729", "2", "4", "2",
"9", "1", "zebra", "aardvark",
"fish", "gnu", "31",
"81", "91", "88" };
private void btnStart_Click(object sender, EventArgs e)
{
if (i < questions.Length)
i++;
//txtScore.Text = score;
lblQuestion.Text = questions[i];
radA.Text = answers[a];
a++;
radB.Text = answers[a];
a++;
radC.Text = answers[a];
a++;
radD.Text = answers[a];
a++;
btnStart.Visible = false;
btnStart.Enabled = false;
btnSubmit.Visible = true;
btnSubmit.Enabled = true;
}
private void btnSubmit_Click(object sender, EventArgs e)
{
{
if (i == 0 && radB.Checked)
{
MessageBox.Show("Correct");
score++;
txtScore.Text = Convert.ToString(score);
btnSubmit.Enabled = false;
btnSubmit.Visible = false;
btnStart.Visible = true;
btnStart.Enabled = true;
btnStart.Text = "Next";
}
else
{
MessageBox.Show("Incorrect");
score--;
}
вы хотите счет будет обновляться, когда пользователь вводит ответ? или только когда они нажимают кнопку «Отправить»? – Catalyst
, если пользователь дает один неверный ответ, ему не следует разрешать дальше? –
@Catalyst - это радиокнопки, так что пользователь может ввести ответ, нажав кнопку отправки :) – Roebotek