Option Strict On Public Class Form1 Dim rd As New Random Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load Dim dico As New Dictionary(Of String, String) dico.Add("chat", "cat") dico.Add("chien", "dog") dico.Add("souris", "mouse") Dim alea As KeyValuePair(Of String, String) = dico.ElementAt(rd.Next(0, dico.Count)) MessageBox.Show(alea.Key & Environment.NewLine & alea.Value) End Sub End Class
Option Strict On Public Class Form1 Dim rd As New Random Dim dico As New Dictionary(Of String, String) Dim solution As String Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load dico.Add("chat", "cat") dico.Add("chien", "dog") dico.Add("souris", "mouse") NouveauMot() End Sub Private Sub NouveauMot() Dim alea As KeyValuePair(Of String, String) = dico.ElementAt(rd.Next(0, dico.Count)) Label1.Text = alea.Key solution = alea.Value End Sub Private Sub TextBox1_KeyUp(sender As Object, e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyUp If e.KeyCode = Keys.Enter Then If TextBox1.Text = solution Then MessageBox.Show("bravo!") Else MessageBox.Show("pas bon!") End If TextBox1.Text = "" NouveauMot() End If End Sub End Class
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionen particulier sa dernière phraseJ'ai la fâcheuse tendance de lire en diagonale.
Option Strict On Public Class Form1 Dim rd As New Random Dim MaListe As New List(Of MaClasse) Dim solution As MaClasse 'classe mots Public Class MaClasse Public MotFrancais As String Public MotAnglais As String Public Rang As Integer 'bien sur, on peut rajouter des tas d'informations dans cette classe (nom, verbe, conjonction...) End Class Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load 'faire une boucle ici pour le chargement des mots 'ici j'ajoute les mots manuellement dans MaListe MaListe.Add(New MaClasse With {.MotFrancais "chien", .MotAnglais "dog", .Rang = 0}) MaListe.Add(New MaClasse With {.MotFrancais "chat", .MotAnglais "cat", .Rang = 0}) MaListe.Add(New MaClasse With {.MotFrancais "souris", .MotAnglais "mouse", .Rang = 0}) 'premier mot à afficher NouveauMot() End Sub Private Sub TextBox1_KeyUp(sender As Object, e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyUp If e.KeyCode = Keys.Enter Then If TextBox1.Text = solution.MotAnglais Then MessageBox.Show("bravo!") 'quand la solution est bonne, on décrémente par exemple le rang de 1 solution.Rang -= 1 Else 'quand la solution n'est pas trouvée, on incrémente de 1 MessageBox.Show("pas bon!") solution.Rang += 1 End If TextBox1.Text = "" NouveauMot() End If End Sub Private Sub NouveauMot() 'on peut ici inventer un algorithme qui sélectionne (ou pas) un mot en fonction de son rang 'sélection au hasard d'une instance de MaClasse de la liste solution = MaListe.Item(rd.Next(0, MaListe.Count)) Label1.Text = solution.MotFrancais End Sub End Class
Je suis débutant en visual basic
Ce ne sont pas des textboxes, qu'il te faut alors utiliser, mais, plus astucieusement, une listview
et aussi que le programme vérifie que le mot correspond bien a son homologue anglaisCharger ces mots dans des contrôles est, me semble t-il inutile dans ce cas.
et aussi que le programme vérifie que le mot correspond bien a son homologue anglais ...
Un admin redirigera ce fil à la bonne place et supprimera le nouveau que tu as créé.