На этом шаге мы рассмотрим основные моменты создания указанного приложения.
Перечислим порядок действий, необходимых для создания приложения.
Рис.1. Вид редактора Visual Basic при создании пользовательской формы для игры в орел и решка
Private Sub CommandButton1_Click() End Sub
Приведем полный текст приложения.
' Переменные уровня модуля Dim Банк As Long Dim Партия As Long Dim НомерМаксимум As Long Dim НомерМинимум As Long Dim Максимум As Long Dim Минимум As Long Private Sub CommandButton1_Click() ' Определяет номер очередной партии Партия = Партия + 1 ' Запрещается изменение пользователем значения ' в поле Банк в течение игры TextBox1.Enabled = False ' Проверяется, являются ли вводимыми в поле Банк данные числом If IsNumeric(TextBox1.Text) = False Then MsgBox "Введите ставку", vbExclamation, "Орел и решка" TextBox1.Enabled = True TextBox1.SetFocus Exit Sub End If Банк = CLng(TextBox1.Text) ' Проверяется, не превышает ли Банк максимально допустимую величину If Банк > 10000 Or Банк <= 0 Then MsgBox "Ставка должна быть в диапазоне [1,10000]", vbExclamation, "Орел и решка" TextBox1.Enabled = True TextBox1.SetFocus Exit Sub End If ' Бросается монета Randomize Монета = Int(2 * Rnd) ' Сравнение результата бросания монеты компьютером ' с ситуацией, когда игрок загадал "орел" If OptionButton1.Value = True Then If Монета = 0 Then Банк = Банк - 1 TextBox1.Text = CStr(Банк) End If If Монета = 1 Then Банк = Банк + 1 TextBox1.Text = CStr(Банк) End If End If ' Сравнение результата бросания монеты компьютером ' с ситуацией, когда игрок загадал "решка" If OptionButton2.Value = True Then If Монета = 1 Then Банк = Банк - 1 TextBox1.Text = CStr(Банк) End If If Монета = 0 Then Банк = Банк + 1 TextBox1.Text = CStr(Банк) End If End If TextBox2.Text = CStr(Партия) ' Определяется, превышает ли текущее значение поля Банк максимальную ' величину If Банк > Максимум Then Максимум = Банк НомерМаксимум = Партия TextBox3.Text = CStr(Максимум) TextBox5.Text = CStr(НомерМаксимум) End If ' Определяется, превышает ли минимальное значение поля Банк текущее ' значение If Банк < Минимум Then Минимум = Банк НомерМинимум = Партия TextBox4.Text = CStr(Минимум) TextBox6.Text = CStr(НомерМинимум) End If End Sub Private Sub CommandButton2_Click() ' Процедура закрытия диалогового окна UserForm1.Hide End Sub Private Sub UserForm_Initialize() ' Процедура инициализации диалогового окна Максимум = 0 Минимум = 10000 Партия = 0 ' Поле Банк доступно для ввода информации пользователем ' при инициализации диалогового окна TextBox1.Enabled = True ' Поля Партия, Максимум, Минимум и Игра не доступны для ' ввода информации пользователем TextBox2.Enabled = False TextBox3.Enabled = False TextBox4.Enabled = False TextBox5.Enabled = False TextBox6.Enabled = False ' При инициализации диалогового окна выбран переключатель Орел OptionButton1.Value = True End Sub
Ниже описывается, для чего предназначена каждая из процедур данной программы.
Рис.2. Возможное сообщение о неправильном вводе данных в поле Банк
Для запуска приложения достаточно нажать кнопку Запуск подпрограммы / UserForm или выбрать команду Запуск | Запуск подпрограммы / UserForm.
Рис.3. Запуск приложения
На экране появится диалоговое окно игры. Игрок вводит в поле Банк сумму денег, и потом, выбирая соответствующий переключатель в группе выбор, загадывает Орел или Решка. Нажатие кнопки Бросание монеты приводит к подбрасыванию компьютером монеты. Текущий счет игрока отображается в поле Банк. В поле партия выводится номер текущей партии, а в полях Максимум и Минимум выводятся максимальный и минимальный счет игрока втечение предыдущих партий. На рисунке 4 приведено диалоговое окно игры "Орел-Решка".
Рис.4. Диалоговое окно Орел-Решка
На следующем шаге мы продолжим разработку приложений.