Тип занятия: отработка навыков моделирования в среде объектно-ориентированного языка программирования Visual Basic.
Уровень сложности: ориентирован на учеников выбирающих физико-математический профиль с углубленным изучением курса информатики.
Программно-дидактическое обеспечение: персональный компьютер, язык программирования Visual Basic, инструкция к работе над проектом.
Цели:
- создать условия для освоения технологии моделирования в среде объектно-ориентированного языка программирования Visual Basic;
- расширить представление работы на форме при создании графического интерфейса с помощью элементов управления Image;
- использовать возможности свойств элементов управления, генерирования случайных чисел, оператора выбора;
- организовать совместную внеурочную деятельность для развития навыков проектирования.
Наверное, не найдётся того ребёнка, который сидя за компьютером ни разу не играл в свободное время за монитором в электронные игры. Всегда отыщется пытливый ученик способный самому себе и окружающим задать вопрос о моделировании игровых процессов компьютерных игр.
Очень важно помочь ребятам получить ответ и увидеть в компьютере инструмент созидания прекрасного с помощью одного из языков программирования, инструмент творческого исследования, инструмент самообразования.На помощь приходит среда
объектно-ориентированного программирования Visual Basic с помощью, которой ребенок учится моделировать игровые процессы, разрабатывая удобный графический интерфейс, развивая исследовательскую деятельность. Это способствует глубокому пониманию назначения объектов размещённых на форме, свойств элементов управления, функций, операторов, развивая при этом аккуратность в работе.Постановка задачи
Формулировка задачи: смоделировать процесс, имитирующий игру бросания пары игральных кубиков, двумя игроками, с прогнозируемым результатом и определения победителя с помощью среды объектно-ориентированного программирования Visual Basic.
Данный пример программирования позволяет познакомиться с элементом управления Image (Рисунок), который во многом похож на использовавшийся во время уроков элемент управления PictureBox. Преимущества элемента Image перед элементом PictureBox в том, что он требует меньше системных ресурсов, а недостаток в его минимальных возможностях.
Функция Rnd - необходима для генерирования случайной грани. Она возвращает случайное вещественное число (тип данных Single), которое больше нуля, но меньше единицы.
Функция Int - удаляет дробную часть числа, превращая его в целое.
Например:
Int (Rnd * 6) + 1 - будет выдавать одно из целых чисел: 1, 2, 3, 4, 5, 6.
Оператор Randomize - гарантирует, что каждый раз не будет генерироваться одна и та же последовательность случайных чисел.
Оператор выбора Select Case - позволяет выбрать диаграмму в зависимости от выпавшего числа грани.
Функция LoadPicture применяется, чтобы присвоить значение свойству Picture элемента управления Image содержимое загружаемого изображения.
Инструкция по работе с проектом
I. Изображения граней игрального кубика
Прежде чем приступить к работе в среде программирования Visual Basic необходимо сделать заготовки изображений граней игрального кубика, для этого откройте графический редактор Paint.
Вам нужно создать семь отдельных bmp - 80
файлов, каждый из которых является картинкой одной из граней кубика, сохранив их в папке с именем "Играем в кубики" на диске С.
Нулевой bmp - файл, дайте ему имя 0.bmp, содержит пустой квадрат 2 х 2 сантиметра, нет ни одного выпадения - пусто, то есть символизирует начальное состояние игры, когда ещё ни один игрок не сделал хода.
Первый bmp - файл, дайте ему имя 1.bmp, содержит квадрат 2 х 2 сантиметра с одной черной точкой по середине, что символизирует одно выпадение.
Второй bmp - файл, дайте ему имя 2.bmp, содержит квадрат с двумя черными точками, символизирующий два выпадения.
Третий bmp - файл, дайте ему имя 3.bmp, содержит квадрат с тремя черными точками, символизирующий три выпадения.
Аналогично четвертый bmp - файл (четыре выпадания), пятый bmp - файл (пять выпадений) и шестой bmp - файл (семь выпадений).
Пример общего вида семьи отдельных bmp - файлов представлено в таблице, смотрите <Рисунок1>.
Рисунок 1
II. Создание проекта
Запустите программную среду Visual Basic, начните новый проект. Озаглавьте форму именем "Играем в кубики". Для создания графического интерфейса поместите на форму два элемента управления Image, присвоив им имена Image1 и Image2; три кнопки (Command1, Command2, Command3), одно текстовое поле (Text1) и десять надписей (Label1, Label2, :, Label10) согласно предлагаемому дизайну (см. <Рисунок2>).
Рисунок 2.
III. Назначение каждого элемента управления
1. элементы управления Image (Рисунок) - для графического представления игральных кубиков. По щелчку на любом элементе управления Image (Рисунок) на обоих элементах должно появляться изображение "выпавших" граней кубиков;
2. надписи (метки) - для вывода подсказки пользователю;
3. кнопки - для завершения программы по щелчку на ней, сброса данных и определения результата;
4. текст - для ввода количества бросаний игральных кубиков.
IV. Установка свойств
С помощью окна Свойства объекта измените значения свойств формы и управляющих элементов согласно таблице:
Класс объектов | Свойство | Значение по умолчанию | Новое значение |
Form (форма) | Caption | Form1 | Играем в кубики |
Label (надпись) | Caption | Label1 | Щелкните по нужному кубику, чтобы бросить |
Label (надпись) | Caption | Label2 | Выпало в последний раз |
Label (надпись) | Caption | Label3 | 0 |
Label (надпись) | Caption | Label4 | Суммарный итог игры |
Label (надпись) | Caption | Label5 | Старт для первого игрока |
Label (надпись) | Caption | Label6 | Старт для второго игрока |
Label(надпись) | Caption | Label7 | Количество ходов бросания |
Label (надпись) | Caption | Label8 | "пусто" |
Label (надпись) | Caption | Label9 | "пусто" |
Label (надпись) | Caption | Label10 | "пусто" |
Image (рисунок) | Picture | (Bitmap) : | щелкните на многоточии* |
CommandButton (командная кнопка) | Caption | Command1 | Выход |
CommandButton (командная кнопка) | Caption | Command2 | Сброс |
CommandButton (командная кнопка) | Caption | Command3 | Результат игры |
TextBox (текстовое поле) | Text | Text1 | "пусто" |
*
Выберите свойство Picture каждого элемента управления Image, щелкните на многоточии (...), в появившемся диалоговом окне из созданных вами графических файлов выберите файл, с которого будет начинаться игра (0.bmp).Сделав щелчок, по любому из игральных кубиков, будет имитироваться бросание обеих кубиков, поэтому программный код для каждого кубика будет одним и тем же, то есть, используем общую процедуру.
Создание программного кода
Перейдите в окно программного кода с помощью меню Tools/Add Procedure добавьте общую процедуру с именем БросатьКубики:
Код процедуры БросатьКубики:
Private Sub БросатьКубики()
Dim Кубик1 As Integer, Кубик2 As Integer
Randomize
'Бросить первый кубик
Кубик1 = Int(Rnd * 6) + 1
'Выбрать подходящий графический файл
Select Case Кубик1
Case 1
Set Image1.Picture = LoadPicture("С:\Играем в кубики\1.bmp")
Case 2
Set Image1.Picture = LoadPicture("С:\Играем в кубики\2.bmp")
Case 3
Set Image1.Picture = LoadPicture("С:\Играем в кубики\3.bmp")
Case 4
Set Image1.Picture = LoadPicture("С:\Играем в кубики\4.bmp")
Case 5
Set Image1.Picture = LoadPicture("С:\Играем в кубики\5.bmp")
Case 6
Set Image1.Picture = LoadPicture("С:\Играем в кубики\6.bmp")
End Select
'Бросить Второй кубик
Кубик2 = Int(Rnd * 6) + 1
'Выбрать подходящий графический файл
Select Case Кубик2
Case 1
Set Image2.Picture = LoadPicture("С:\Играем в кубики\1.bmp")
Case 2
Set Image2.Picture = LoadPicture("С:\Играем в кубики\2.bmp")
Case 3
Set Image2.Picture = LoadPicture("С:\Играем в кубики\3.bmp")
Case 4
Set Image2.Picture = LoadPicture("С:\Играем в кубики\4.bmp")
Case 5
Set Image2.Picture = LoadPicture("С:\Играем в кубики\5.bmp")
Case 6
Set Image2.Picture = LoadPicture("С:\Играем в кубики\6.bmp")
End Select
Label3.Caption = Кубик1 + Кубик2
End Sub
Код для элементов управления имитации бросания кубиков:
Private Sub Image1_Click()
'Ввод количества бросаний кубиков
n = Val(Text1.Text)
'Вызвать процедуру БросатьКубики указанное число раз
For t = 1 To n
БросатьКубики
'Подсчет количества выпадений
Label8.Caption = Val(Label8.Caption) + Val(Label3.Caption)
Next t
End Sub
Private Sub Image2_Click()
'Ввод количества бросаний кубиков
n = Val(Text1.Text)
'Вызвать процедуру БросатьКубики указанное число раз
For t = 1 To n
БросатьКубики
'Подсчет количества выпадений
Label9.Caption = Val(Label9.Caption) + Val(Label3.Caption)
Next t
End Sub
Код кнопки выход:
Private Sub Command1_Click()
End
End Sub
Код кнопки сброс:
Private Sub Command2_Click()
'Сброс граней кубиков
Image1.Picture = LoadPicture("С:\Играем в кубики\0.bmp")
Image2.Picture = LoadPicture("С:\Играем в кубики\0.bmp")
'Сброс сумм игроков
Label8.Caption = 0
Label9.Caption = 0
'Сброс победителя
Label10.Caption = ""
'Сброс количества ходов
Text1.Text = ""
'Сброс последнего выпадения
Label3.Caption = 0
End Sub
Код кнопки результат игры:
Private Sub Command3_Click()
'Проверка победителя
If Val(Label8.Caption) = Val(Label9.Caption)
Then Label10.Caption = "Ничья"
Else If Val(Label9.Caption) > Val(Label8.Caption)
Then Label10.Caption = "Выиграл 2 игрок"
Else Label10.Caption = "Выиграл 1 игрок"
End Sub
V. Запуск проекта
Сохраните форму и проект в папке Играем в кубики на диске С, запустите и протестируйте программу. Проверьте, что изображения появляются при щелчке на каждом элементе Image. После отладки программных кодов апробируйте игру. Усовершенствуйте графический интерфейс, измените значения свойств объектов, определяющих внешний вид (цвет фона формы, цвет, размер и способ выравнивания шрифта на метке, в текстовом поле).