В вашем коде довольно много ошибок:
1. Определение вашего случайного числа
Вы генерируете случайное число в каждом цикле, что означает, что вместо фиксированного числа, которое вы пытаетесь угадать, число меняется.
Даже если вы определяете случайное число вне цикла, число меняется каждый раз, когда вы нажимаете кнопку.
Вам потребуется определить ее как глобальную переменную вне подпрограмм и изменять ее только при нажатии кнопки сброса
2. Определение intcount
intcount устанавливается в 0 каждый раз, когда вы нажимаете кнопку, так как он определен в подпрограмме нажатия кнопки, что я не считаю желательным.
3. Тот факт, что вы используете цикл
Вам вообще не нужна петля. Если вы не хотите, чтобы ваша программа входила в бесконечный цикл и вылетала каждый раз, когда вы нажимаете кнопку, а ваше предположение неверно, вы должны удалить цикл и просто использовать код внутри него.
4. Использованы неверные типы данных
decnumber должен быть целым числом, поскольку random.next () возвращает целочисленное значение (вы также можете переименовать его в ToGuess)
decGuess = CDec(textGuess.Text)
должно быть
decGuess = CInt(textGuess.Text)
, так как если вы введете десятичную дробь, вы никогда не сможете угадать число
Причина, по которой программа всегда выводит «правильное», состоит в том, что вместо того, чтобы изменять свое предположение, чтобы оно совпадало со случайным числом, компьютер «угадывает» ваше предположение, изменяя случайное число, чтобы оно в конечном итоге стало ваше предположение, увеличивая число догадок каждый раз.
UPDATE:
Причина, по которой ваша новая кнопка не работает, заключается в том, что она не обрабатывает щелчок. Предполагая, что вы нажали новую кнопку btnNew
, попробуйте заменить:
Private Sub btnNew_Click_1(sender As Object, e As EventArgs)
с:
Private Sub btnNew_Click_1(sender As Object, e As EventArgs) Handles btnNew.Click
В следующий раз при добавлении подпрограммы для нажатия кнопок попробуйте дважды щелкнуть кнопку в представлении дизайна в Visual Studio. Это автоматически сгенерирует подпрограмму click.
Другая проблема, с которой вы столкнулись, заключается в том, что вы не генерировали случайное число при загрузке формы. Чтобы решить эту проблему, дважды щелкните форму в представлении конструктора, чтобы сгенерировать подпрограмму загрузки, а затем программно нажмите кнопку
.
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
btnNew.PerformClick()
End Sub
также, благодаря комментарию Джими, не забудьте установить intCount
в 0 при нажатии btnNew