Счастливая семерка

Создадим приложение, имитирующее игровой автомат. Начало игры задается Вами щелчком на кнопке Играть. В окне приложения появляются три  случайных одноразрядных  десятичных числа. Если хотя бы одно из них равно 7, то Вы выиграли и появляется изображение стопки золотых монет (жаль, что только изображение). Если же ни одно из трех выпавших чисел не равно 7, то Вы проиграли, и изображение стопки монет не появляется (хорошо, что еще не нужно платить). Наконец, когда Вам надоело играть, щелчком на кнопке Выход Вы можете закрыть Вашу прикладную программу.

1. Проектирование интерфейса

Итак, приступим к проектированию приложения. Начнем с интерфейса, который должен выглядеть примерно так, как это показано на рис. 1.

Рис. 1. Расположение объектов, применяемых в проекте


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

2.     Запустите VB, если он еще не запущен.

3.     Создайте на форме две кнопки управления, расположив их, как показано на рис. 1. На кнопке Command1 Вы будете щелкать, чтобы начать игру. Щелчок на кнопке Command2 будет указанием закрыть приложение.

4.     Создайте рамку Frame1 в правом верхнем углу формы (см. рис. 1), в которой будут размещены три надписи, предназначенные для вывода случайных цифр.

5.     Создайте внутри рамки слева первую из трех надписей – надпись Label1. Чтобы размеры всех трех надписей были одинаковы, удобно оставшиеся две получить копированием уже созданной надписи. Для копирования надписи выполните следующую последовательность действий:

5.1. Щелкните на поле надписи Label1, чтобы сделать ее активным объектом.

5.2. Нажмите Contrl+C, чтобы скопировать объект в буфер обмена Windows.

5.3. Щелкните на рамке Frame1, чтобы сделать ее активным элементом. Тем самым Вы назначаете рамку приемником для следующей операции вставки.

5.4. Нажмите Contrl+V, чтобы в рамке создать дубликат надписи.

5.5. Внимание! На экране появится окно с сообщением о том, что объект с именем Label1 уже существует и с предложением создать массив объектов. В диалоговом окне нажмите на кнопку No (Нет). Будьте внимательны! Если Вы отреагируете иначе, то Вы рискуете создать массив надписей, что чревато появлением трудно диагностируемых ошибок при разработке кода.

5.6. Появившийся дубликат надписи Label1 переместите в правую часть рамки.

5.7. Для получения третьей надписи повторите выполнение пунктов 5.3 – 5.5.

5.8. Поместите полученный дубликат надписи Label1 посредине между первыми двумя надписями.

6.      Создайте надпись Label4 (она будет содержать название игры) и надпись Label5 (она будет содержать шифр группы и фамилии студентов бригады – исполнителей задания).

7.     Теперь создайте поле рисунка, в котором при выигрыше пользователя будет появляться изображение столбика монет. В правый нижний угол формы поместите с помощью элемента Image (рисунок) поле рисунка. Для этого щелкните на кнопке Image в окне элементов и создайте прямоугольное поле в правом нижнем углу формы. Созданный объект будет назван Image1.

 Соглашение об именах основных объектов

При назначении объекту имени рекомендуется его имя начинать с трехбуквенного префикса, отражающего тип объекта. Остальная часть имени должна напоминать о назначении объекта. Например, для кнопки Command2, предназначенной для завершения игры, вместо имени Command2 было бы удобнее применить имя cmdВыход. Здесь первая часть имени, состоящая из трех символов, указывает, что объект является кнопкой, а вторая говорит о назначении объекта.

Рекомендуется применять следующие префиксы имен объектов:

Объект

Префикс

Кнопка

cmd

Рамка

fra

Форма

frm

Рисунок

img

Надпись

lbl

Линия

lin

Список

lst

Графическое поле

pic

Фигура

shp

Таймер

tmr

Текстовое поле

txt

8.     Сохраните форму Form1 под именем frmГлавная в рабочей папке, а также сохраните проект, задав ему имя СчастливаяСемерка.

3. Установка свойств объектов

Рис. 2 Готовый интерфейс проекта


9.     Установите такие значения свойств объектов, чтобы интерфейс проекта соответствовал рис. 2. При этом Вам придется обратиться к следующим свойствам:

Alignment – для выбора вида выравнивания текста на объекте;

BackColor – для установки цвета фона;

Caption – для задания текста на объекте;

Font – для изменения параметров текста;

ForeColor – для установки цвета текста на объекте.

С целью сокращения затрат времени на задание значений свойств, при необходимости задать одинаковое значение одному и тому же свойству нескольких объектов, следует эти объекты объединить в группу выделенных объектов. Для этого нужно выделить объекты при нажатой клавише Shift. Когда выделена группа объектов, заданное значение свойства становится значением соответствующего свойства всех объектов выделенной группы.

10.              Задайте значение False свойству Visible поля рисунка Image1. В этом случае при запуске проекта рисунок не будет виден, а появляться  и исчезать вновь он будет под управлением программы только по мере необходимости. Проверьте, чтобы свойство Visible трех надписей Label1 имело значение True.

11.              Измените имена тех объектов, которые будут участвовать в программе. Это объекты Command1, Command2, три надписи с одинаковым именем Label1 и рисунок Image1. Установите указанные ниже значения свойства Name для перечисленных выше объектов:

Command1CmdИграть, Command2CmdВыход,

Label1LblЧисло1, Label1LblЧисло2, Label1LblЧисло3,

Image1ImgВыигрыш.

12.              Установите свойства рисунка. Объект «рисунок» будет содержать изображение столбика монет. Это изображение будет появляться, когда пользователь выигрывает. Вам потребуется установить значения еще двух свойств этого объекта:

Stretch (Вытягивание) для установления точного размера картинки по размеру окна;

Picture (Рисунок) для указания имени графического файла, который загружается в окно;

12.1. Выделите объект «рисунок» на форме.

12.2. Щелкните на свойстве Stretch (Вытягивание) в окне свойств, затем щелкните на стрелке, чтобы вызвать список, и в списке щелкните на значении True. Теперь картинка точно будет вписана в поле рисунка.

12.3. Дважды щелкните на свойстве Picture (Рисунок) в окне свойств. Появиться диалоговое окно Load Picture (Загрузить рисунок). Войдите в папку kladovka (о том, где она находится, чуть позже). Среди файлов этой папки выделите файл Coins.wmf и щелкните на кнопке Open. Файл будет загружен в окно в поле рисунка на форме.

Доступ к папке kladovka может быть получен несколькими способами:

o       Если Вы работаете в компьютерном классе ИВЦ МЭИ, то в локальной сети k:\FP\Inf\kladovka.

o       Или если Вы имеете лазерный диск «Обучающий комплекс Информатика на основе Visual Basic 6.0», то Informatic\Informatika\kladovka.

o       Или скачайте архив этой папки на свой компьютер с сайта http://glagolevvb.narod.ru и выполните разархивацию архивного файла (в окне программы Проводник для этого выделите этот файл и выполните команду контекстного меню Extract to).

13.           Сохраните проект.

4. Составление программного кода

Ниже приведен программный код проекта:

Option Explicit

Private Function СлучайноеЧисло_0_9() As Byte

    СлучайноеЧисло_0_9 = Int(Rnd * 10)

End Function

Private Sub Form_Load()

    Randomize

End Sub

Private Sub cmdИграть_Click()

    ImgВыигрыш.Visible = False

    LblЧисло1.Caption = СлучайноеЧисло_0_9()

    LblЧисло2.Caption = СлучайноеЧисло_0_9()

    LblЧисло3.Caption = СлучайноеЧисло_0_9()

5:  If (LblЧисло1.Caption = 7) Or _

       (LblЧисло2.Caption = 7) Or _

       (LblЧисло3.Caption = 7) Then

        ImgВыигрыш.Visible = True

        Beep

10: End If

End Sub

Private Sub cmdВыход_Click()

    End

End Sub

Программа содержит объявление функции с именем СлучайноеЧисло_0_9, которая возвращает случайное одноразрядное целое число из диапазона от 0 до 9. В этой функции применяется функция Rnd, которая возвращает числовое значение с плавающей точкой, значение которого удовлетворяет условию 0<=Rnd<1, а также применяется функция Int, возвращающая целую часть аргумента.

Первая строка тела процедуры cmdИграть_Click, которая выполняется при щелчке левой клавишей мыши на кнопке cmdИграть, скрывает рисунок с изображением стопки монет. В строках 2 – 4 содержатся три обращения к функции СлучайноеЧисло_0_9, которые обеспечивают выработку трех случайных целых одноразрядных чисел. Строки 5 – 10 обеспечивают появление рисунка со стопкой монет и подачу сигнала, если хотя бы одно из полученных трех случайных чисел равно семи.

Процедура Form_Load выполняется при загрузке формы. Единственная строка этой процедуры обеспечивает инициализацию функции Rnd. Если этого не сделать, то после каждого запуска приложения будет генерироваться одна и та же последовательность случайных чисел. Если хотите, проверьте. Для этого достаточно поставить апостроф (‘) перед оператором Randomize, превратив его тем самым в комментарий, и пару раз запустить приложение, записав при каждом запуске начальную часть последовательности вырабатываемых случайных чисел. Если сравните сделанные записи, то убедитесь в их совпадении.

14.           Введите код программы и сохраните проект. Для вставки в программу функции СлучайноеЧисло_0_9 воспользуйтесь командой Tools, Add Procedure.

15.           Запустите приложение и проверьте его работу.

16.            Закройте VB.

17.            Удалите свою рабочую папку на диске d.

5. Вопросы для контроля

1.     Для чего предназначен элемент Image?

2.     Как создать группу выделенных объектов?

3.     Каково назначение свойств BackColor, ForeColor?

4.     Каково назначение свойств поля рисунка Stretch, Visible, Picture?

5.     Что означает имя Rnd?

6.     Что означает имя Int?

7.     Как изменится работа проекта, если в процедуре Form_Load удалить инструкцию Randomize?

 

Hosted by uCoz