Практическая работа 1 Проект «Пазлы»
Оценка 4.7

Практическая работа 1 Проект «Пазлы»

Оценка 4.7
Карточки-задания
docx
информатика
7 кл—10 кл
28.01.2017
Практическая работа 1 Проект «Пазлы»
Предварительная подготовка к работе: в любом графическом редакторе разбить произвольный рисунок на 4 части и сохранить в разных файлах (Ris1.bmp, Ris2.bmp, Ris3.bmp, Ris4.bmp). Например, в Paint. Не изменяйте пропорций рисунков. Создайте ещё один рисунок Ris5.bmp – квадрат с однотонной заливкой (будем использовать его в качестве фона, когда необходимо скрыть предыдущие рисунки). Задание. Разработать проект «Пазлы». Исходный рисунок разбит на 4 части. Необходимо сложить его на пустом поле, разбитом на 4 части.
Практическая работа 1 Проект.docx

Практическая работа 1 Проект «Пазлы»

Предварительная подготовка к работе: в любом графическом редакторе разбить произвольный рисунок на 4 части и сохранить в разных файлах (Ris1.bmp, Ris2.bmp, Ris3.bmp, Ris4.bmp). Например, в Paint. Не изменяйте пропорций рисунков. Создайте ещё один рисунок Ris5.bmp – квадрат с однотонной заливкой (будем использовать его в качестве фона, когда необходимо скрыть предыдущие рисунки).

Задание. Разработать проект «Пазлы». Исходный рисунок разбит на 4 части. Необходимо сложить его на пустом поле, разбитом на 4 части.

Интерфейс проекта. На форме разместить следующие элементы управления:

  • метка Label1 (Собери картинку по образцу!);
  • 4 командные кнопки: Command1 (Выход), Command12 (Проверка), Command3 (Сброс), Command4 (Справка);
  • поле Image1 – поместить исходный рисунок для образца;
  • поля Image2 и Image3 - создать как массивы из 4-х элементов каждый (с индексами 0, 1, 2, 3), установить у каждого свойство Strech = True. В поле Image2 необходимо будет собрать рисунок. Первоначально там загружен пустой фон, поэтому в свойстве Picture полей Image2 нужно указать путь к фоновому рисунку Ris5.bmp. В свойстве Picture полей Image3 указать путь к рисункам (Ris1.bmp, Ris2.bmp, Ris3.bmp, Ris4.bmp). Файлы с рисунками скопируйте предварительно в папку с вашим проектом, тогда не нужно будет указывать полный путь к файлам, достаточно указать имя файла;
  • метка Label2 – для вывода справки (установите свойство Visible= True, чтобы при запуске проекта метка была невидима);
  • таймер Timer1 – первоначально таймер выключен. Он будет включаться по кнопке «Справка» и через заданный интервал времени скрывать текст, который выведен в метке Label2 (установите свойства таймера Interval = 8000, Enabled = False).

http://festival.1september.ru/articles/512297/img2.jpg

Программный код.

Dim Mx, My As Single, Path As String, k, i, j, t As Integer, A(0 To 3) As Integer

‘Массив А - для хранения номеров перемещённых картинок;

‘Mx, My – координаты объекта при перемещении; Path – путь к файлу с рисунком;

‘k - количество верных ответов; t - номер рисунка, который нужно вернуть на место

Private Sub Form_Load() ‘загрузка формы

For i = 0 To 3

A(i) = -1 ‘заполнение массива -1 – признак того, что соответствующие поля Image2 пустые

Next

End Sub

Private Sub Command1_Click() ‘Выход

End

End Sub

Private Sub Command2_Click() 'Проверка

k = 0 ‘количество верных ответов

For i = 0 To 3

If Image2(i).Index = A(i) Then k = k + 1 'индекс в массиве рисунков должен совпадать с номером рисунка

Next

If k = 4 Then

Label1.Caption = "Игра завершена!!! Верных ответов - " & Str(k)

Else

Label1.Caption = "Попробуй еще раз!!! Верных ответов - " & Str(k)

End If

End Sub

Private Sub Command3_Click() 'Сброс

Label2.Visible = False

For i = 0 To 3

Image3(i).Visible = True ‘восстанавливаем все рисунки

Image2(i).Picture = LoadPicture("Ris5.bmp") ‘загружаем пустой фон

A(i) = -1 ‘в массив заносим -1 - признак пустого поля

Next

Label1.Caption = "Собери картинку"

End Sub

Private Sub Command4_Click() 'Справка

Label2.Visible = True ‘метка становится видимой и появляется текст справки

Label2.Caption = "Перемещайте картинки при нажатой левой кнопке мыши в нужные клетки. При двойном щелчке по картинке она вернётся на прежнее место!"

Timer1.Enabled = True ‘включаем таймер

End Sub

Private Sub Form_DragDrop(Source As Control, X As Single, Y As Single) 'Поправка

SourceMove (X - Mx), (Y - My)

End Sub

Private Sub Image2_DblClick(Index As Integer) 'Возвратить картинку на место по двойному щелчку по рисунку

Image2(Index).Picture = LoadPicture("Ris5.bmp") ‘загружаем пустой фон

t = A(Index) ‘запоминаем номер рисунка, который нужно вернуть на место

Image3(t).Visible = True ‘делаем рисунок с номером t видимым

End Sub

Private Sub Image2_DragDrop(Index As Integer, Source As Control, X As Single, Y As Single) 'завершение перетаскивания

Source.Visible = False

Image2(Index).Picture = LoadPicture(Path)

j = Index: A(j) = Val(Mid$(Path, 4, 1)) - 1 'запомнить номер перемещённого рисунка в массиве А

End Sub

Private Sub Image3_MouseDown(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)

If Button = vbLeftButton Then

Call Image3(Index).Drag(vbBeginDrag) 'начало перетаскивания рисунка

Mx = X

My = Y

End If

i = Index ‘запоминаем индекс поля в Image3, из которого перемещаем рисунок

If i = 0 Then Path = "Ris1.bmp" 'путь к рисунку

If i = 1 Then Path = "Ris2.bmp"

If i = 2 Then Path = "Ris3.bmp"

If i = 3 Then Path = "Ris4.bmp"

End Sub

Private Sub Timer1_Timer() 'Таймер

Label2.Visible = False ‘скрыть текст справки

End Sub

Задания:

  1. Добавьте в проект 2 новые формы. На первой (заставка) разместите переключатели (Option) для выбора уровня сложности игры. При выборе 1-го уровня загружается соответствующая форма (рисунок разбит на 4 части).
  2. Реализуйте 2-й уровень сложности игры на третьей форме. Исходный рисунок разбит на 9 частей.

 

Практическая работа 1 Проект «Пазлы»

Практическая работа 1 Проект «Пазлы»

Private Sub Form_Load() ‘ загрузка формы

Private Sub Form_Load() ‘ загрузка формы

Label1.Caption = " Собери картинку "

Label1.Caption = " Собери картинку "

Index ‘запоминаем индекс поля в

Index ‘запоминаем индекс поля в
Материалы на данной страницы взяты из открытых истончиков либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.
28.01.2017