0
votes

Le même nombre est généré dans RNG dans VB.NET

J'essaie de créer un générateur de nombres aléatoires dans VB 16 dans Visual Studio, mais chaque fois que je l'exécute, j'en reçois 71, j'ai essayé de le rendre public, de le partager et de plusieurs autres choses, mais ce ne sera pas le cas travailler. J'essaie de créer un programme qui oblige l'utilisateur à deviner un nombre généré aléatoirement et à continuer à deviner jusqu'à ce qu'il l'obtienne, mais pour une raison quelconque, le même nombre est choisi à chaque fois. Cela ne fonctionnera pas correctement spécifiquement dans les formulaires d'application Windows. Comment obtenir un nombre aléatoire à chaque fois?

Public Shared Randomize()
Dim value As Integer = CInt(Int((100 * Rnd()) + 1))

Public Sub EnterBtn_Click(sender As Object, e As EventArgs) Handles EnterBtn.Click
    Dim entervalue As String = EnterTxt.Text
    Dim chances As Integer
    Select Case entervalue
        Case > value
            ResTxt.Text = "Too big"
            chances += 1
        Case < value
            ResTxt.Text = "Too small"
            chances += 1
        Case = value
            ResTxt.Text = "Well done, you got it in " & chances & " tries"
    End Select
End Sub


3 commentaires

Les échantillons de code doivent être complets et corrects.


quand exactement un nouveau nombre aléatoire doit-il être généré?


Lorsque le programme démarre pour la première fois


3 Réponses :


0
votes

Voici un squelette de code pour vous:

Dim rnd As New Random()
For i as Integer = 0 to 10
  Console.WriteLine("{0,15:N0}", rnd.Next())
Next

Notez le truc rnd.Next () . J'espère que cela aide.


2 commentaires

Vous devez créer le hasard en dehors de la boucle et ne pas en faire un nouveau à chaque itération


En effet, j'ai ajouté la boucle après coup et bon ... je vais la modifier tout de suite. Merci de me le faire savoir.



0
votes

Puisque votre code n'est pas correct, il est difficile d'identifier le problème. On ne sait pas non plus ce que le code est censé faire.

Essayez ceci

Private Shared PRNG As New Random ' add this 

value = PRNG.Next(1, 101)'this will set value to a random number between 1 and 100 inclusive


1 commentaires

Lorsque le programme est exécuté, il affichera une fenêtre avec une zone de texte et un bouton, et vous devez essayer de deviner le nombre, s'il est trop élevé, il s'affichera donc, s'il est trop bas, il s'affichera ainsi, lorsque le joueur aura le bon numéro, il leur dira ainsi et aussi le nombre de tentatives



1
votes

Vous étiez proche! Voici un exemple de travail modifiant votre logique d'origine:

   Private random As Random = New Random()
   Private value As Integer
   Private chances As Integer

   Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
      value = random.Next(1, 100)
      chances = 0
   End Sub

   Private Sub EnterBtn_Click(sender As Object, e As EventArgs) Handles EnterBtn.Click
      Select Case EnterTxt.Text
         Case > value
            chances += 1
            ResTxt.Text = "Too big"
         Case < value
            chances += 1
            ResTxt.Text = "Too small"
         Case = value
            chances += 1
            ResTxt.Text = "Well done, you got it in " & chances & " tries"

            'and reset for next attempt
            value = random.Next(1, 100)
            chances = 0
      End Select
   End Sub


0 commentaires