Наверное каждый, кто хочет научиться программировать мечтает написать свою игру. С графикой, с 3d, со звуком и все такое. В этой статье мы с вами напишем игру, без всего этого, но зато с четкой логикой и достаточной увлекательностью.


Шаг №1 - Постановка задачи

Что же должна делать эта программа, иначе говоря, какова же цель игры ? Она состоит в том, что компьютер загадывает число от 1 до 100, вы должны его угадать, вводя число в текстовое поле, а копьютер должен говорить, больше это число чем загаданное, или меньше и вести счет попыткам.Если же вы угадаете число то компьютер должен сказать вам об этом и сказать, за сколько попыток вы выиграли.


Шаг №2 - Визуальное проектирование

Вторым шагом будет визуальное проектирование программы.На форме должны быть такие элементы :

Кнопка(Button)-с Caption'oм - Загадать и Name - Command1
Кнопка(Button)-с Caption'oм - Проверить и Name - Command2
Кнопка(Button)-с Caption'oм - Выход и Name - Command3
Текстовое поле (TextBox) - без текста и Name - Text1

В результате должно получиться вот так :

Все, с визуальным проектированием покончено.


Шаг №3 - Программирование в коде

Дальше идет самое интересное, но и самое сложное место в нашей программе - программирование в коде.
Войдите в раздел глобальных объявлений и напишите там :

Option Explicit - объявляем переменные

Dim a as Integer - Объявляем числовую переменную a - эта переменная будет числом которое загадает компьютер.

Dim b as Integer - Объявляем числовую переменную zc - эта переменная будет числом которое введет пользователь.

Dim c as Integer - Объявляем числовую переменную c - это будет число попыток

Теперь войдите в код кнопки Загадать и напишите там :

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

a = Int(Rnd*100) - Переменная а равна целому числу от 1 до 100 (Int -целое, Rnd*100-от 1 до 100)

MsgBox "Число от 1 до 100 загаданно",vbExclamation,"Готово"-Выдаем сообщение с заголовком -"Готово", текстом -"Число от 1 до 100 загаданно", и значком с восклицательным знаком.

 

А теперь войдите в код кнопки Проверить и напишите там :

If a=0 then Msgbox "Сначала нужно загадать число",vbCritical,"Ошибка" : Exit Sub - Если загаданное число равно 0, то есть оно не загаданно, то выдаем сообщение об этом и выходим из процедуры ( то есть дальнейший код не выполняется)

If Not IsNumeric (Text1.Text) Then - если параметр Text элемента Text1 не число, то ...

Msgbox "Это не число",vbCritical,"Ошибка"-...Выдаем сообщение об этом

Exit Sub - Выходим из процедуры

Else - Иначе, то есть если параметр Text элемента Text1 число, то ...

b=Text1.Text - Переменная b равна параметру Text элемента Text1

If b>100 or b<1 then Msgbox "Это не число от 1 до 100" : Exit Sub- если переменная b больше 100 или меньше 1 то выдать сообщение об этом и выйти из процедуры.

If a>b then msgbox "Загаданное число больше" : c=c+1 - если переменная a (загаданное число) больше переменной b (введенное число) то сообщить об этом и к переменной c (число попыток) прибавить 1.

If a<b then msgbox "Загаданное число меньше" : c=c+1 - если переменная a (загаданное число) меньше переменной b (введенное число) то сообщить об этом и к переменной c (число попыток) прибавить 1.

If a=b then Msgbox "Вы угадали число за "+Str(c+1)+ " попыток" ,vbExclamation,"Победа":c=0:a=0 - Если переменная а равна переменной b то сообщить об этом , обнулить число попыток, обнулить загаданное число.С+1 здесь сделано потому, что отсчет числа попыток начинается не с одного, а с нуля)

End if - Закончить условие которое началось в строке "If Not IsNumeric..."


Ну и в код кнопки выход впишите :

End

В результате всего этого у вас должна получится вот такая программа :

Option Explicit
Dim a As Integer
Dim b As Integer
Dim c As Integer

Private Sub Command1_Click()
Randomize Timer
a = Int(Rnd * 100)
MsgBox "Число от 1 до 100 загаданно", vbExclamation, "Готово"
End Sub

Private Sub Command2_Click()
If a = 0 Then MsgBox "Сначала загадайте число", vbCritical, "Ошибка": Exit Sub
If Not IsNumeric(Text1.Text) Then
MsgBox "Это не число", vbCritical, "Ошибка"
Exit Sub
Else
b = Text1.Text
If b > a Then MsgBox "Загаданное число меньше", vbInformation, "Нет": c = c + 1
If b < a Then MsgBox "Загаданное число больше", vbInformation, "Нет": c = c + 1
If b = a Then MsgBox "Ура.Вы угадали число за " + Str(c+1) + " попыток", vbExclamation, "Победа!": a = 0: c = 0
End If
End Sub

Private Sub Command3_Click()
End
End Sub


Шаг №4 - Подведение итогов

Проверьте программу. Попробуйте выиграть. Ну как , нравиться ? Если у вас все получилось то поздравляю - вы можете с гордостью говорить друзьям, что написали игру.Если же что - то не работает то можете попробовать разобраться в исходниках.