Наверное каждый, кто хочет научиться программировать мечтает написать свою игру. С графикой, с 3d, со звуком и все такое. В этой статье мы с вами напишем игру, без всего этого, но зато с четкой логикой и достаточной увлекательностью.
Что же должна делать эта программа, иначе говоря, какова же цель игры ? Она состоит в том, что компьютер загадывает число от 1 до 100, вы должны его угадать, вводя число в текстовое поле, а копьютер должен говорить, больше это число чем загаданное, или меньше и вести счет попыткам.Если же вы угадаете число то компьютер должен сказать вам об этом и сказать, за сколько попыток вы выиграли.
Вторым шагом будет визуальное проектирование программы.На форме должны быть такие элементы :
Кнопка(Button)-с Caption'oм - Загадать и Name - Command1
Кнопка(Button)-с
Caption'oм - Проверить и Name - Command2
Кнопка(Button)-с Caption'oм - Выход
и Name - Command3
Текстовое поле (TextBox) - без текста и Name - Text1
В результате должно получиться вот так :
Все, с визуальным проектированием покончено.
Дальше идет самое интересное, но и самое сложное место в нашей программе -
программирование в коде.
Войдите в раздел глобальных объявлений и напишите
там :
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
Проверьте программу. Попробуйте выиграть. Ну как , нравиться ? Если у вас все получилось то поздравляю - вы можете с гордостью говорить друзьям, что написали игру.Если же что - то не работает то можете попробовать разобраться в исходниках.