Étape 2 : créer un problème d'addition aléatoire
Le questionnaire a besoin de problèmes mathématiques.Il manquera d'intérêt s'il propose toujours les mêmes problèmes : vous devez donc inclure des nombres aléatoires.Vous ajoutez une méthode appelée StartTheQuiz() qui remplit les problèmes et démarre le temporisateur.Dans cette étape, vous ajoutez une addition aléatoire.Les autres problèmes mathématiques et le temporisateur seront ajoutés dans les prochaines étapes de ce didacticiel.
Dans le deuxième didacticiel, vous avez créé plusieurs SoundPlayers pour un jeu de labyrinthe.Vous procédez de même pour le questionnaire de mathématiques, sauf que vous utilisez la classe Random au lieu de la classe SoundPlayer.
Pour créer un problème d'addition aléatoire
Créez un objet Random à l'aide d'une instruction new, comme celle indiquée ci-dessous.
Public Class Form1 ' Create a Random object to generate random numbers. Private randomizer As New Random
public partial class Form1 : Form { // Create a Random object to generate random numbers. Random randomizer = new Random();
Vous avez maintenant ajouté un objet Random à votre formulaire et vous l'avez appelé randomizer.
[!REMARQUE]
Dans le didacticiel du labyrinthe, vous avez créé deux composants SoundPlayer à l'aide de l'instruction new.Cela revient au même.La seule différence est que, contrairement à SoundPlayer, Random n'est ni un composant ni un contrôle, et ne peut donc pas utiliser ces deux dénominations.Il s'agit d'un objet.Vous avez déjà probablement entendu parler des objets, et vous en apprendrez davantage sur leur signification dans les didacticiels suivants.Pour le moment, retenez uniquement qu'un objet est un élément créé lorsque votre programme utilise une instruction new pour créer des boutons, des contrôles Label, des éléments Panel, OpenFileDialog, ColorDialog, SoundPlayer ou Random, et même des formulaires.Les didacticiels suivants vous expliqueront plus en détail le fonctionnement de ces objets.
Maintenant lorsqu'il démarre, votre formulaire crée un objet Random et le nomme randomizer.Comme avec les SoundPlayers, si vous commencez à taper randomizer dans une méthode, puis un point (.), une fenêtre IntelliSense s'ouvre pour afficher toutes les méthodes que vous pouvez appeler avec l'objet Random.La méthode Next() s'utilise comme suit.
Méthode Next
Lorsque vous appelez random.Next(50), vous obtenez un nombre aléatoire qui est inférieur à 50 (de 0 à 49).
Comme vous allez bientôt générer une méthode pour vérifier les réponses, votre programme doit se souvenir des nombres qu'il a choisis pour les problèmes.Ajoutez un entier (dénommé int en C# ou Integer en Visual Basic) appelé addend1 et un int (Integer) appelé addend2 au formulaire (de la même façon que vous avez ajouté un objet Random appelé randomizer), comme suit.
' Create a Random object to generate random numbers. Private randomizer As New Random ' These Integers will store the numbers ' for the addition problem. Private addend1 As Integer Private addend2 As Integer
// Create a Random object to generate random numbers. Random randomizer = new Random(); // These ints will store the numbers // for the addition problem. int addend1; int addend2;
[!REMARQUE]
Un int (Integer) est utilisé pour stocker une valeur numérique positive ou négative.Il peut contenir n'importe quel nombre compris entre -2147483648 et 2147483647.Il peut stocker uniquement des nombres entiers, et non des décimales.
Ensuite, ajoutez une méthode appelée StartTheQuiz() qui utilise la méthode Next() de l'objet Random pour choisir deux nombres et les placer dans des contrôles Label.Ajoutez un commentaire pour indiquer qu'elle remplira tous les problèmes, puis démarrera la minuterie.Il doit se présenter comme suit.
''' <summary> ''' Start the quiz by filling in all of the problems ''' and starting the timer. ''' </summary> ''' <remarks></remarks> Public Sub StartTheQuiz() ' Fill in the addition problem. addend1 = randomizer.Next(51) addend2 = randomizer.Next(51) plusLeftLabel.Text = addend1.ToString() plusRightLabel.Text = addend2.ToString() sum.Value = 0 End Sub
/// <summary> /// Start the quiz by filling in all of the problems /// and starting the timer. /// </summary> public void StartTheQuiz() { // Fill in the addition problem. addend1 = randomizer.Next(51); addend2 = randomizer.Next(51); plusLeftLabel.Text = addend1.ToString(); plusRightLabel.Text = addend2.ToString(); sum.Value = 0; }
[!REMARQUE]
Notez que vous avez appelé randomizer.Next(51).Vous utilisez 51 et non 50 pour que l'addition des deux nombres donne une somme comprise entre 0 et 100.Si vous passez 50 à la méthode Next(), elle choisira un nombre de 0 à 49, si bien que la plus haute somme possible sera 98, et non 100.Une fois que les deux premières instructions de la méthode sont exécutées, chacun des deux ints (Integers), addend1 et addend2, contient un nombre aléatoire compris entre 0 et 50.
Examinez attentivement ces instructions.
plusLeftLabel.Text = addend1.ToString() plusRightLabel.Text = addend2.ToString()
plusLeftLabel.Text = addend1.ToString(); plusRightLabel.Text = addend2.ToString();
Les instructions ont défini les propriétés Text des deux contrôles Label de signe plus (plusLeftLabel et plusRightLabel) pour qu'ils affichent les deux nombres aléatoires.Vous devez utiliser la méthode ToString() de l'int (Integer) pour le convertir en texte (en programmation, le mot chaîne signifie texte), car les contrôles Label affichent uniquement du texte, et non des nombres.
Vous voulez maintenant que le bouton Démarrer lance le questionnaire : ouvrez le Concepteur Windows Forms et double-cliquez sur le bouton pour ajouter un gestionnaire d'événements Click.Ensuite, ajoutez les deux instructions suivantes.
Private Sub startButton_Click() Handles startButton.Click StartTheQuiz() startButton.Enabled = False End Sub
private void startButton_Click(object sender, EventArgs e) { StartTheQuiz(); startButton.Enabled = false; }
Vous savez que la première instruction fait : elle appelle la nouvelle méthode d' StartTheQuiz() .la deuxième instruction définit la propriété Enabled de contrôle de bouton démarrage à False.Elle permet de désactiver le bouton pour empêcher l'utilisateur de cliquer dessus.Ainsi, l'utilisateur ne peut cliquer sur le bouton Démarrer qu'une seule fois.Ensuite, le bouton apparaît grisé et n'est plus disponible, si bien que l'utilisateur doit terminer le questionnaire avant que le temps ne soit écoulé (ou qu'il ne ferme le programme).
Maintenant, enregistrez et exécutez votre programme.Cliquez sur le bouton Démarrer.Un problème d'addition aléatoire doit s'afficher, comme indiqué dans l'image suivante.
Problème d'addition aléatoire
Pour continuer ou examiner
Pour passer à l'étape suivante du didacticiel, consultez Étape 3 : ajouter un temporisateur.
Pour revenir à l'étape précédente du didacticiel, consultez Étape 1 : créer un projet et ajouter des étiquettes à votre formulaire.