Число задумывает пользователь, а компьютер его отгадывает - VB
Формулировка задачи:
Число задумывает пользователь, а компьютер его отгадывает. Хорошо бы, чтобы компьютер действовал не "методом тыка", а "методом научного тыка", который отличается тем, что каждый следующий тык основывается на результатах предыдущих тыков и сокращает количество возможных значений более чем на 1.
Решение задачи: «Число задумывает пользователь, а компьютер его отгадывает»
textual
Листинг программы
- Dim Counter As Integer
- Dim Max As Integer
- Dim Min As Integer
- Dim MyEvent As Boolean
- Private Sub Command1_Click()
- If Val(Label2.Caption) > 1 Then
- Max = Val(Label2.Caption)
- Label2.Caption = Try(True)
- ElseIf Val(Label2.Caption) = 1 Then
- Label2.Caption = "0"
- MsgBox "Диапазон закончился", vbOKOnly + vbInformation, "Выходим": Unload Me
- End If
- End Sub
- Private Sub Command2_Click()
- If Val(Label2.Caption) < 99 Then
- Min = Val(Label2.Caption)
- Label2.Caption = Try(False)
- ElseIf Val(Label2.Caption) = 99 Then
- Label2.Caption = "100"
- MsgBox "Диапазон закончился", vbOKOnly + vbInformation, "Выходим": Unload Me
- End If
- End Sub
- Private Sub Command3_Click()
- MsgBox "Ура! :-)", vbOKOnly + vbExclamation, "": Unload Me
- End Sub
- Private Sub Form_Load()
- Counter = 10
- Max = 100: Min = 0
- Me.Caption = "Осталось попыток: " & Trim$(Str$(Counter))
- MsgBox "Загадайте число от 0 до 100, а я попробую его угадать...", vbOKOnly + vbInformation, ""
- Me.Show
- Label2.Caption = Try(False)
- End Sub
- Function Try(MyEvent) As Integer
- Try = (Max - Min) \ 2
- If MyEvent Then
- Try = Val(Label2.Caption) - Try 'много
- Else
- Try = Val(Label2.Caption) + Try 'мало
- End If
- Counter = Counter - 1
- Me.Caption = "Осталось попыток: " & Trim$(Str$(Counter))
- If Counter = 0 Then MsgBox "Попытки кончились. Я не угадал :-(", vbOKOnly + vbExclamation, "": End
- End Function
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д