Редактировать - Как это исправить, если еще проблема переменной оператора? - PullRequest
1 голос
/ 07 апреля 2019

Я пытаюсь создать игру со случайными числами, но условие всегда ложно, хотя я добавил оператор ввода b =

Option Explicit

dim b,a,max,min
'To randomize variable (a)
max=3
min=1
Randomize
a = (Int((max-min+1)*Rnd+min))
b = inputbox("Guess a number from " & min & " to " & max)
If a = b Then
    msgbox("you win")
Else 
    msgbox("you died it was " & a)
End If

Я ожидал, когда вы угадаете правильное число, оно скажет вамкогда, но это всегда ты умер, число было #

Ответы [ 2 ]

1 голос
/ 07 апреля 2019

Вы почти там, но, как уже упоминалось в комментариях , переменная не будет заполнять переменную значениями, поэтому сравнение всегда будет False.

Если выожидая, что b будет заполнен пользователем, вы можете запросить ввод через функцию InputBox(), добавив одну строку;

Option Explicit

Dim beans, b, a, max, min
'To randomize variable (a)
max = 100
min = 1
Call Randomize()
'Enter the line below to collect input from the user.
b = InputBox("Enter a number between " & min & " and " & max & ".")
'Remember to round the number to make sure you have a whole number.
a = Round((Int((max - min + 1) * Rnd() + min)))
If (a = b) Then
    Call MsgBox("You win")
Else 
    Call MsgBox("You died it was " & a)
End If

Вы также можете рассмотреть возможность проверки ввода, чтобы убедиться, что пользователь вводитзначение между вашими min и max и соответствующим образом реагирует, если значение недопустимо.

0 голосов
/ 07 апреля 2019

Это соответствует 1 - 10.

Randomize
Num = Int((10 - 1 + 1) * Rnd + 1)
If CInt(Inputbox("Enter Number")) = Num Then
    Msgbox "match"
Else
    Msgbox "Nope it was " & Num
End If

Формула из справки: Int((upperbound - lowerbound + 1) * Rnd + lowerbound).Смотри http://download.microsoft.com/download/winscript56/Install/5.6/W982KMeXP/EN-US/scrdoc56en.exe.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...