Число задумывает пользователь, а компьютер его отгадывает - VB

Узнай цену своей работы

Формулировка задачи:

Число задумывает пользователь, а компьютер его отгадывает. Хорошо бы, чтобы компьютер действовал не "методом тыка", а "методом научного тыка", который отличается тем, что каждый следующий тык основывается на результатах предыдущих тыков и сокращает количество возможных значений более чем на 1.

Решение задачи: «Число задумывает пользователь, а компьютер его отгадывает»

textual
Листинг программы
  1. Dim Counter As Integer
  2. Dim Max As Integer
  3. Dim Min As Integer
  4. Dim MyEvent As Boolean
  5.  
  6.  
  7. Private Sub Command1_Click()
  8.    If Val(Label2.Caption) > 1 Then
  9.       Max = Val(Label2.Caption)
  10.       Label2.Caption = Try(True)
  11.     ElseIf Val(Label2.Caption) = 1 Then
  12.       Label2.Caption = "0"
  13.       MsgBox "Диапазон закончился", vbOKOnly + vbInformation, "Выходим": Unload Me
  14.    End If
  15. End Sub
  16.  
  17. Private Sub Command2_Click()
  18.    If Val(Label2.Caption) < 99 Then
  19.       Min = Val(Label2.Caption)
  20.       Label2.Caption = Try(False)
  21.     ElseIf Val(Label2.Caption) = 99 Then
  22.       Label2.Caption = "100"
  23.       MsgBox "Диапазон закончился", vbOKOnly + vbInformation, "Выходим": Unload Me
  24.    End If
  25. End Sub
  26.  
  27. Private Sub Command3_Click()
  28.    MsgBox "Ура! :-)", vbOKOnly + vbExclamation, "": Unload Me
  29. End Sub
  30.  
  31. Private Sub Form_Load()
  32.    Counter = 10
  33.    Max = 100: Min = 0
  34.    Me.Caption = "Осталось попыток: " & Trim$(Str$(Counter))
  35.    MsgBox "Загадайте число от 0 до 100, а я попробую его угадать...", vbOKOnly + vbInformation, ""
  36.    Me.Show
  37.    Label2.Caption = Try(False)
  38. End Sub
  39.  
  40. Function Try(MyEvent) As Integer
  41.    Try = (Max - Min) \ 2
  42.    If MyEvent Then
  43.       Try = Val(Label2.Caption) - Try    'много
  44.    Else
  45.       Try = Val(Label2.Caption) + Try    'мало
  46.   End If
  47.    Counter = Counter - 1
  48.    Me.Caption = "Осталось попыток: " & Trim$(Str$(Counter))
  49.    If Counter = 0 Then MsgBox "Попытки кончились. Я не угадал :-(", vbOKOnly + vbExclamation, "": End
  50. End Function

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.6 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы