Je suis assez nouveau à la programmation C# si nue avec moi. J'ai lu de nombreuses questions déjà postées sur le site mais je n'arrive pas à en voir une qui pose le même problème et je crois qu'il pourrait y avoir une approche plus simple.Créer un ordre aléatoire pour mes questions de quiz
J'ai créé une application de test et utilisais une instruction switch pour trouver les réponses aux questions. c'est-à-dire aller de 1 à 2 à 3 à 4 et ainsi de suite. Cependant, une fois que l'utilisateur a terminé le questionnaire une fois et a voulu recommencer, il devra recommencer toutes les mêmes questions. (La conception est que si elles se trompent, l'application se termine). Par conséquent, je voulais voir s'il y avait un moyen de randomiser le nombre pour le QuestionCount (mais seulement avoir ce nombre généré une fois) ou d'une autre façon que je pouvais le faire. Je peux voir qu'il y a des suggestions dans l'utilisation d'une liste mais celles-ci semblent se concentrer sur les grands nombres contenus dans la liste alors que la mienne ne comportera actuellement que 20 questions.
J'ai copié le code que j'utilise actuellement.
private void Verify(int Question)
{
switch (Question)
{
case 1:
if (checkBox1.Checked && !checkBox2.Checked && !checkBox3.Checked && !checkBox4.Checked)
{
MessageBox.Show("Correct - Well Done");
//This was a test to see if I could assign a random number which works but the number could then appear again meaning the user gets the same question
Random random = new Random();
QuestionCount = random.Next(0, 21);
QuestionSelection(QuestionCount);
//SelectLabel(QuestionCount);
ClearcheckBox();
}
else
{
MessageBox.Show("No - It was Sunguard");
Application.Exit();
}
break;
case 2:
if (checkBox3.Checked && !checkBox2.Checked && !checkBox1.Checked && !checkBox4.Checked)
{
//this method was the original where it just adds 1 to QuestionCount and works it way through the switch statement for the questions.
MessageBox.Show("Correct - Well Done");
QuestionCount++;
QuestionSelection(QuestionCount);
//SelectLabel(QuestionCount);
ClearcheckBox();
}
else
{
MessageBox.Show("No - It's to look at a students details");
Application.Exit();
}
}
}
Le mot clé que vous recherchez est "aléatoire". Autrement dit, pour réorganiser au hasard une liste sans remplacement. Vous voulez mélanger une liste de questions (dans votre code, les questions semblent juste être identifiées par 'int's, donc une liste de' int's). – perelman