скачать рефераты
  RSS    

Меню

Быстрый поиск

скачать рефераты

скачать рефератыДипломная работа: Руководство по разработке динамической логической игры на Visual Basic 6.0

 If k = 2 Then Label9.BackColor = Label56.BackColor

 If k = 2 Then Label9.ForeColor = Label56.ForeColor

 

 If k = 3 Then Label10.Caption = Label56.Caption

 If k = 3 Then Label10.BackColor = Label56.BackColor

 If k = 3 Then Label10.ForeColor = Label56.ForeColor

 

 If k = 4 Then Label11.Caption = Label56.Caption

 If k = 4 Then Label11.BackColor = Label56.BackColor

 If k = 4 Then Label11.ForeColor = Label56.ForeColor

 

 If k = 5 Then Label12.Caption = Label56.Caption

 If k = 5 Then Label12.BackColor = Label56.BackColor

 If k = 5 Then Label12.ForeColor = Label56.ForeColor

 

 If k = 6 Then Label13.Caption = Label56.Caption

 If k = 6 Then Label13.BackColor = Label56.BackColor

 If k = 6 Then Label13.ForeColor = Label56.ForeColor

 

 If k = 7 Then Label14.Caption = Label56.Caption

 If k = 7 Then Label14.BackColor = Label56.BackColor

 If k = 7 Then Label14.ForeColor = Label56.ForeColor

 

 If k = 8 Then Label15.Caption = Label56.Caption

 If k = 8 Then Label15.BackColor = Label56.BackColor

 If k = 8 Then Label15.ForeColor = Label56.ForeColor

 

 If k = 9 Then Label16.Caption = Label56.Caption

 If k = 9 Then Label16.BackColor = Label56.BackColor

 If k = 9 Then Label16.ForeColor = Label56.ForeColor

 

 If k = 10 Then Label17.Caption = Label56.Caption

 If k = 10 Then Label17.BackColor = Label56.BackColor

 If k = 10 Then Label17.ForeColor = Label56.ForeColor

 

 If k = 11 Then Label18.Caption = Label56.Caption

 If k = 11 Then Label18.BackColor = Label56.BackColor

 If k = 11 Then Label18.ForeColor = Label56.ForeColor

 

 If k = 12 Then Label19.Caption = Label56.Caption

 If k = 12 Then Label19.BackColor = Label56.BackColor

 If k = 12 Then Label19.ForeColor = Label56.ForeColor

 

 If k = 13 Then Label20.Caption = Label56.Caption

 If k = 13 Then Label20.BackColor = Label56.BackColor

 If k = 13 Then Label20.ForeColor = Label56.ForeColor

 

 If k = 14 Then Label21.Caption = Label56.Caption

 If k = 14 Then Label21.BackColor = Label56.BackColor

 If k = 14 Then Label21.ForeColor = Label56.ForeColor

 

 If k = 15 Then Label22.Caption = Label56.Caption

 If k = 15 Then Label22.BackColor = Label56.BackColor

 If k = 15 Then Label22.ForeColor = Label56.ForeColor

 

 If k = 16 Then Label23.Caption = Label56.Caption

 If k = 16 Then Label23.BackColor = Label56.BackColor

 If k = 16 Then Label23.ForeColor = Label56.ForeColor

 

 If k = 17 Then Label24.Caption = Label56.Caption

 If k = 17 Then Label24.BackColor = Label56.BackColor

 If k = 17 Then Label24.ForeColor = Label56.ForeColor

 

 If k = 18 Then Label25.Caption = Label56.Caption

 If k = 18 Then Label25.BackColor = Label56.BackColor

 If k = 18 Then Label25.ForeColor = Label56.ForeColor

 

 If k = 19 Then Label26.Caption = Label56.Caption

 If k = 19 Then Label26.BackColor = Label56.BackColor

 If k = 19 Then Label26.ForeColor = Label56.ForeColor

 

 If k = 20 Then Label27.Caption = Label56.Caption

 If k = 20 Then Label27.BackColor = Label56.BackColor

 If k = 20 Then Label27.ForeColor = Label56.ForeColor

 

  If k = 21 Then Label28.Caption = Label56.Caption

 If k = 21 Then Label28.BackColor = Label56.BackColor

 If k = 21 Then Label28.ForeColor = Label56.ForeColor

 

 If k = 22 Then Label29.Caption = Label56.Caption

 If k = 22 Then Label29.BackColor = Label56.BackColor

 If k = 22 Then Label29.ForeColor = Label56.ForeColor

 

 If k = 23 Then Label30.Caption = Label56.Caption

 If k = 23 Then Label30.BackColor = Label56.BackColor

 If k = 23 Then Label30.ForeColor = Label56.ForeColor

 

 If k = 24 Then Label31.Caption = Label56.Caption

 If k = 24 Then Label31.BackColor = Label56.BackColor

 If k = 24 Then Label31.ForeColor = Label56.ForeColor

 

 If k = 25 Then Label32.Caption = Label56.Caption

 If k = 25 Then Label32.BackColor = Label56.BackColor

 If k = 25 Then Label32.ForeColor = Label56.ForeColor

 

 If k = 26 Then Label33.Caption = Label56.Caption

 If k = 26 Then Label33.BackColor = Label56.BackColor

 If k = 26 Then Label33.ForeColor = Label56.ForeColor

 

 If k = 27 Then Label34.Caption = Label56.Caption

 If k = 27 Then Label34.BackColor = Label56.BackColor

 If k = 27 Then Label34.ForeColor = Label56.ForeColor

 

 If k = 28 Then Label35.Caption = Label56.Caption

 If k = 28 Then Label35.BackColor = Label56.BackColor

 If k = 28 Then Label35.ForeColor = Label56.ForeColor

 

 If k = 29 Then Label36.Caption = Label56.Caption

 If k = 29 Then Label36.BackColor = Label56.BackColor

 If k = 29 Then Label36.ForeColor = Label56.ForeColor

 

 If k = 30 Then Label37.Caption = Label56.Caption

 If k = 30 Then Label37.BackColor = Label56.BackColor

 If k = 30 Then Label37.ForeColor = Label56.ForeColor

 

 If k = 31 Then Label38.Caption = Label56.Caption

 If k = 31 Then Label38.BackColor = Label56.BackColor

 If k = 31 Then Label38.ForeColor = Label56.ForeColor

 

 If k = 32 Then Label39.Caption = Label56.Caption

 If k = 32 Then Label39.BackColor = Label56.BackColor

 If k = 32 Then Label39.ForeColor = Label56.ForeColor

 

 If k = 33 Then Label40.Caption = Label56.Caption

 If k = 33 Then Label40.BackColor = Label56.BackColor

 If k = 33 Then Label40.ForeColor = Label56.ForeColor

 

 If k = 34 Then Label41.Caption = Label56.Caption

 If k = 34 Then Label41.BackColor = Label56.BackColor

 If k = 34 Then Label41.ForeColor = Label56.ForeColor

 

 If k = 35 Then Label42.Caption = Label56.Caption

 If k = 35 Then Label42.BackColor = Label56.BackColor

 If k = 35 Then Label42.ForeColor = Label56.ForeColor

 

 If k = 36 Then Label43.Caption = Label56.Caption

 If k = 36 Then Label43.BackColor = Label56.BackColor

 If k = 36 Then Label43.ForeColor = Label56.ForeColor

 

 If k = 37 Then Label44.Caption = Label56.Caption

 If k = 37 Then Label44.BackColor = Label56.BackColor

 If k = 37 Then Label44.ForeColor = Label56.ForeColor

 

 If k = 38 Then Label45.Caption = Label56.Caption

 If k = 38 Then Label45.BackColor = Label56.BackColor

 If k = 38 Then Label45.ForeColor = Label56.ForeColor

 

 If k = 39 Then Label46.Caption = Label56.Caption

 If k = 39 Then Label46.BackColor = Label56.BackColor

 If k = 39 Then Label46.ForeColor = Label56.ForeColor

 

k = k + 1

 Next i

Next j

End Sub

Такой вариант заполнения игрового поля НАЧАЛЬНЫМИ значениями (при старте игры) нельзя считать оптимальным. Однако он очень нагляден для понимания алгоритма.

Процедура Form_Load() теперь будет выглядеть так:

Private Sub Form_Load()

Set_Nominal

Fdraw

Field_Fill

End Sub

Для того, чтобы посмотреть, как все работает, добавим еще одну процедуру Form_Click()  (на некоторое время. Для отладки):

Private Sub Form_Click()

Set_Nominal   ‘Заполнить массив field(i,j)

Fdraw              ‘Нарисовать на игровом поле значения массива field(i,j) – для отладки

Field_Fill         ‘Нарисовать реальные номиналы ячеек и цветовые атрибуты

End Sub

- она полностью идентична процедуре Form_Load()

Теперь, кликая мышкой на поле формы Form1 (только формы),  Вы можете посмотреть, что значения номиналов ячеек и их цветовые атрибуты меняются правильно.

Полный VB-проект с этого этапа разработки игры -  в файле vbg2.zip

Процедуру Form_Click() можно удалить.

Разработаем процедуру Num_Move(), переписывающую значения и цветовые атрибуты ячеек игрового поля построчно, сверху – вниз. А так же – заполняющую верхний ряд игрового поля новыми значениями (т.е. новые значения ячеек как бы вводятся сверху игрового поля). Процедура будет содержать просто операторы копирования. Вы можете сами разработать более оптимальный алгоритм копирования.

Private Sub Num_Move()

For j = 0 To 4

 For i = 0 To 7

 field(i, j) = field(i, j + 1)

 Next i

Next j

Field_Fill 'Нарисовать новые значения на экран

End Sub

Чтобы посмотреть, как работает копирование значений и атрибутов ячеек сверху вниз, создадим «временную» процедуру обработки Click-а на рамке Frame1:

Private Sub Frame1_Click()

Num_Move

End Sub

Полный VB-проект с этого этапа разработки игры -  в файле vbg3.zip

Теперь нужно добавить код Private Sub Up_Str_App() для заполнения верхней строки игрового поля новыми значениями.

Private Sub Up_Str_App()

TM = Time                   'Прочитать текущее время

TTMS = Len(TM)          'Длина строки с временем

TTM = Mid$(TM, 7, 2)   'Выделить секунды

For i = 0 To TTM           'Повторить цикл столько раз, сколько секунд

Next i

'--------------------------------------------------

' Заполнить верхнюю строку массива field(i, 5)

For i = 0 To 7

 field(i, 5) = Int((20 * Rnd) + 1)

Next i

'--------------------------------------------------

'Заполнить верхнюю строку номиналами, копируя их из  Label56

Field_Fill 'Перерисовать значения на экране, с новыми значениями верхней строки

End Sub

Подключим вызов процедуры в Frame1.Click

Полный VB-проект с этого этапа разработки игры -  в файле vbg4.zip

Покликайте мышкой на поле Frame1 и посмотрите, как все работает!

Теперь нужно написать код обработки постановки игроком игрового маркера в любую из ячеек нижней строки игрового поля.

Процедура для сохранения цветовых атрибутов всех ячеек нижней строки до установки маркера:

Private Sub Save_Color()

savecolor(0) = Label7.BackColor 'Запомнить цвет фона Label7

savecolor(1) = Label8.BackColor 'Запомнить цвет фона Label8

savecolor(2) = Label9.BackColor 'Запомнить цвет фона Label9

savecolor(3) = Label10.BackColor 'Запомнить цвет фона Label10

savecolor(4) = Label11.BackColor 'Запомнить цвет фона Label11

savecolor(5) = Label12.BackColor 'Запомнить цвет фона Label12

savecolor(6) = Label13.BackColor 'Запомнить цвет фона Label13

savecolor(7) = Label14.BackColor 'Запомнить цвет фона Label14

End Sub

Создадим триггер firstset = 0  

Триггер =0, если маркер в нижнюю строку еще не ставили.

Общий фрагмент кода, обрабатывающий установку маркера в нижней строке:

Private Sub Label7_Click()

If firstset = 0 Then Save_Color 'Запомнить цвет фона всех ячеек нижней строки

If firstset = 0 Then Label7.BackColor = &HFF0000 'Маркер СИНЕГО цвета

If firstset = 0 Then firstset = 1 'Больше не обрабатывать

markersave = 0 'Маркер в ячейке, соответствующей  savecolor(0)

End Sub

Private Sub Label8_Click()

If firstset = 0 Then Save_Color 'Запомнить цвет фона всех ячеек нижней строки

If firstset = 0 Then Label8.BackColor = &HFF0000 'Маркер СИНЕГО цвета

If firstset = 0 Then firstset = 1 'Больше не обрабатывать

markersave = 1 'Маркер в ячейке, соответствующей  savecolor(1)

End Sub

Private Sub Label9_Click()

If firstset = 0 Then Save_Color 'Запомнить цвет фона всех ячеек нижней строки

If firstset = 0 Then Label9.BackColor = &HFF0000 'Маркер СИНЕГО цвета

If firstset = 0 Then firstset = 1 'Больше не обрабатывать

markersave = 2 'Маркер в ячейке, соответствующей  savecolor(2)

End Sub

Private Sub Label10_Click()

If firstset = 0 Then Save_Color 'Запомнить цвет фона всех ячеек нижней строки

If firstset = 0 Then Label10.BackColor = &HFF0000 'Маркер СИНЕГО цвета

If firstset = 0 Then firstset = 1 'Больше не обрабатывать

markersave = 3 'Маркер в ячейке, соответствующей  savecolor(3)

End Sub

Private Sub Label11_Click()

If firstset = 0 Then Save_Color 'Запомнить цвет фона всех ячеек нижней строки

If firstset = 0 Then Label11.BackColor = &HFF0000 'Маркер СИНЕГО цвета

If firstset = 0 Then firstset = 1 'Больше не обрабатывать

markersave = 4 'Маркер в ячейке, соответствующей  savecolor(4)

End Sub

Private Sub Label12_Click()

If firstset = 0 Then Save_Color 'Запомнить цвет фона всех ячеек нижней строки

If firstset = 0 Then Label12.BackColor = &HFF0000 'Маркер СИНЕГО цвета

If firstset = 0 Then firstset = 1 'Больше не обрабатывать

markersave = 5 'Маркер в ячейке, соответствующей  savecolor(5)

End Sub

Private Sub Label13_Click()

If firstset = 0 Then Save_Color 'Запомнить цвет фона всех ячеек нижней строки

If firstset = 0 Then Label13.BackColor = &HFF0000 'Маркер СИНЕГО цвета

If firstset = 0 Then firstset = 1 'Больше не обрабатывать

markersave = 6 'Маркер в ячейке, соответствующей  savecolor(6)

End Sub

Private Sub Label14_Click()

If firstset = 0 Then Save_Color 'Запомнить цвет фона всех ячеек нижней строки

If firstset = 0 Then Label14.BackColor = &HFF0000 'Маркер СИНЕГО цвета

If firstset = 0 Then firstset = 1 'Больше не обрабатывать

markersave = 7 'Маркер в ячейке, соответствующей  savecolor(7)

End Sub

Private Sub Save_Color()

savecolor(0) = Label7.BackColor 'Запомнить предыдущий цвет фона Label7

savecolor(1) = Label8.BackColor 'Запомнить предыдущий цвет фона Label8

savecolor(2) = Label9.BackColor 'Запомнить предыдущий цвет фона Label9

savecolor(3) = Label10.BackColor 'Запомнить предыдущий цвет фона Label10

savecolor(4) = Label11.BackColor 'Запомнить предыдущий цвет фона Label11

savecolor(5) = Label12.BackColor 'Запомнить предыдущий цвет фона Label12

savecolor(6) = Label13.BackColor 'Запомнить предыдущий цвет фона Label13

savecolor(7) = Label14.BackColor 'Запомнить предыдущий цвет фона Label14

End Sub

Процедура  Save_Color()  будет использоваться для восстановления цвета ячеек при перемещении маркера по горизонтали (по нижней строке игрового поля).

Создадим переменную markersave в которой будем запоминать НОМЕР ЭЛЕМЕНТА массива savecolor(j), которая соответствует ячейке с маркером (в которую поставили маркер).

Можно проверить, что маркер возможно поставить только в одну ячейку. Теперь нужно обеспечить сохранение маркера (окраску ячейки в синий цвет) при сдвигании ячеек сверху-вниз.

Процедура восстановления цвета маркера после смещения ячеек игрового поля сверху-вниз:

Private Sub Marker_Reset()

If markersave = 0  Then Label7.BackColor = &HFF0000

If markersave = 1  Then Label8.BackColor = &HFF0000

If markersave = 2  Then Label9.BackColor = &HFF0000

If markersave = 3  Then Label10.BackColor = &HFF0000

If markersave = 4  Then Label11.BackColor = &HFF0000

If markersave = 5  Then Label12.BackColor = &HFF0000

If markersave = 6  Then Label13.BackColor = &HFF0000

If markersave = 7  Then Label14.BackColor = &HFF0000

End Sub

Теперь «подключим» процедуру Marker_Reset() к работе в процедуре сдвига вниз. В самый низ процедуры Frame1_Click() вставим следующий код (выделен красным цветом):

Private Sub Frame1_Click()

Num_Move 'Сдвинуть значения всех строк на одну вниз

Up_Str_App 'Заполнить верхнюю строку новыми номиналами

Marker_Reset 'Восстановить маркер

End Sub

Полный VB-проект с этого этапа разработки игры -  в файле vbg5.zip

Напишем процедуру подсчета очков при установке маркера в начале игры.

Private Sub Set_Marker_Count()

'Подсчет очков при постановке маркера

Dim et 'В эту переменную будут записаны результаты пересчета значений массива field(i,j)

          'в номинал ячеек

If n = 0 Then          

‘В какую из ячеек поставлен маркер – какие ячейки field(i,j) ей соответствуют

If markersave = 0 Then et = field(0, 0)

If markersave = 1 Then et = field(1, 0)

If markersave = 2 Then et = field(2, 0)

If markersave = 3 Then et = field(3, 0)

Страницы: 1, 2, 3


Новости

Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

  скачать рефераты              скачать рефераты

Новости

скачать рефераты

© 2010.