Консультация № 190846
07.04.2017, 19:52
0.00 руб.
0 2 1
Здравствуйте! У меня возникли сложности с таким вопросом:

Компьютер загадывает число от 0 до 100
Пользователь начинает отгадывать число. Если разница между загаданным числом и предложенным пользователем больше 30 выводится сообщение – Холодно
Если разница от 20 до 30 – Выводится «тепло»
От 10 до 20 – «Горячо»
От 5 до 10 – «Почти угадал»
От 1 до 5 – «Еще чуть-чуть!!!»

Сделайте подсчет количества попыток за которые отгадано число


Приложение:
Microsoft Visual Basic

Обсуждение

давно
Модератор
137394
1850
07.04.2017, 22:31
общий
08.04.2017, 12:47
VBA
Код:
Set WshS = CreateObject("WScript.Shell")

Randomize
Answ = ""
Do While 2 <> WshS.Popup("Угадайте сгенерированное число от 1 до 100", 0, "Будем играться?", 33)
Quest = Int((100 * Rnd) + 1) ' Generate random value between 1 and 100.
Do
Answ = InputBox("Введите число от 1 до 100", "Угадываем задуманное число")
If Answ = "" Then Exit Do
Answ = CInt(Answ)

Diff = Abs(Answ - Quest)

Select Case Diff
Case 0
MsgBox CStr(Answ) + " Угадали !"
Exit Do
Case 20 To 30
MsgBox CStr(Answ) + " Тепло !"
Case 10 To 20
MsgBox CStr(Answ) + " Горячо!"
Case 5 To 10
MsgBox CStr(Answ) + " Почти угадали!"
Case 1 To 5
MsgBox CStr(Answ) + " Еще чуть-чуть !!!"
Case Else
MsgBox CStr(Answ) + " Хооолодно!!"
End Select
Loop
If Answ = "" Then Exit Do
Loop
VBS
Код:
Set WshS = CreateObject("WScript.Shell")

Randomize
Answ = ""
Do While 2 <> WshS.Popup("Угадайте сгенерированное число от 1 до 100", 0, "Будем играться?", 33)
Quest = Int((100 * Rnd) + 1) ' Generate random value between 1 and 100.
Do
Answ = InputBox("Введите число от 1 до 100", "Угадываем задуманное число")
If Answ = "" Then Exit Do
Answ = CInt(Answ)

Diff = Abs(Answ - Quest)

If Diff = 0 Then
MsgBox CStr(Answ) + " Угадали !"
Exit Do
End If
If Diff > 30 Then MsgBox CStr(Answ) + " Хооолодно!!"
If 20 < Diff And Diff <= 30 Then MsgBox CStr(Answ) + " Тепло !"
If 10 < Diff And Diff <= 20 Then MsgBox CStr(Answ) + " Горячо!"
If 5 < Diff And Diff <= 10 Then MsgBox CStr(Answ) + " Почти угадали!"
If 1 <= Diff And Diff <= 5 Then MsgBox CStr(Answ) + " Еще чуть-чуть !!!"
Loop
If Answ = "" Then Exit Do
Loop
Об авторе:
Понеже не словес красных бог слушает, но дел наших хощет
давно
Модератор
137394
1850
12.04.2017, 20:54
общий
это ответ
Здравствуйте, lexabossa! Похоже, ответов нет, по видимому Microsoft Visual Basic не очень сейчас популярен. Вот код, который я тестировал в VBA, думаю, что он достаточно близок к тому, что Вам нужно.
Код:
Dim Quest As Integer
Dim Diff As Integer
Dim sAnsw As String, iAnsw As Integer
Dim iTry As Integer, sTry As String

Randomize
Do
Quest = Int((100 * Rnd) + 1) ' Generate random value between 1 and 100.
sAnsw = ""
iTry = 0
Do
sAnsw = InputBox("Введите число от 1 до 100", "Компьютер задумал число. Угадываем!")
If sAnsw = "" Then Exit Do

iAnsw = CInt(sAnsw)
Diff = Abs(iAnsw - Quest)
iTry = iTry + 1
sTry = vbCrLf + vbCrLf + "Попытка номер " + CStr(iTry)

' MsgBox "Задумано " + CStr(Quest)

Select Case Diff
Case 0
MsgBox CStr(iAnsw) + " Угадали !" + sTry
Exit Do
Case 20 To 30
MsgBox CStr(iAnsw) + " Тепло !" + sTry
Case 10 To 20
MsgBox CStr(iAnsw) + " Горячо!" + sTry
Case 5 To 10
MsgBox CStr(iAnsw) + " Почти угадали!" + sTry
Case 1 To 5
MsgBox CStr(iAnsw) + " Еще чуть-чуть !!!" + sTry
Case Else
MsgBox CStr(iAnsw) + " Хооолодно!!" + sTry
End Select
Loop
Loop While sAnsw <> ""

Об авторе:
Понеже не словес красных бог слушает, но дел наших хощет
Форма ответа