Внеклассная работа по информатике "Играем в кубики"

Разделы: Информатика


Тип занятия: отработка навыков моделирования в среде объектно-ориентированного языка программирования 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. После отладки программных кодов апробируйте игру. Усовершенствуйте графический интерфейс, измените значения свойств объектов, определяющих внешний вид (цвет фона формы, цвет, размер и способ выравнивания шрифта на метке, в текстовом поле).