Один и тот же номер генерируется каждый раз (VB. net) - PullRequest
0 голосов
/ 30 января 2020

Каждый раз, когда я запускаю это, я продолжаю получать 71, я пытался сделать его опубликованным c, делиться им и несколькими другими вещами, но это не сработает, я пытаюсь создать программу, у которой есть предположение об использовании случайно сгенерированное число, но по какой-то причине оно не будет работать должным образом в формах оконных приложений, и я не могу поместить его под кнопку, так как это приводит к тому, что оно меняется каждый раз. Пожалуйста, помогите.

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 ]

1 голос
/ 31 января 2020

Вы были близки! Вот рабочий пример изменения вашей оригинальной логики c:

   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 голосов
/ 31 января 2020

Поскольку ваш код неверен, трудно точно определить проблему. Также не ясно, что код должен делать.

Попробуйте это

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
0 голосов
/ 30 января 2020

Вот вам скелетный код:

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

Обратите внимание на вещь rnd.Next(). Надеюсь, это поможет.

...