МЕНЮ


Фестивали и конкурсы
Семинары
Издания
О МОДНТ
Приглашения
Поздравляем

НАУЧНЫЕ РАБОТЫ


  • Инновационный менеджмент
  • Инвестиции
  • ИГП
  • Земельное право
  • Журналистика
  • Жилищное право
  • Радиоэлектроника
  • Психология
  • Программирование и комп-ры
  • Предпринимательство
  • Право
  • Политология
  • Полиграфия
  • Педагогика
  • Оккультизм и уфология
  • Начертательная геометрия
  • Бухучет управленчучет
  • Биология
  • Бизнес-план
  • Безопасность жизнедеятельности
  • Банковское дело
  • АХД экпред финансы предприятий
  • Аудит
  • Ветеринария
  • Валютные отношения
  • Бухгалтерский учет и аудит
  • Ботаника и сельское хозяйство
  • Биржевое дело
  • Банковское дело
  • Астрономия
  • Архитектура
  • Арбитражный процесс
  • Безопасность жизнедеятельности
  • Административное право
  • Авиация и космонавтика
  • Кулинария
  • Наука и техника
  • Криминология
  • Криминалистика
  • Косметология
  • Коммуникации и связь
  • Кибернетика
  • Исторические личности
  • Информатика
  • Инвестиции
  • по Зоология
  • Журналистика
  • Карта сайта
  • Программирование логической игры на visual basic

    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

    [pic]

    Процедура 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)

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

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

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

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

    ‘Написать счет

    If et = 0 Then Label48.Caption = Label48.Caption + 1

    If et = 1 Then Label48.Caption = Label48.Caption - 1

    If et = 2 Then Label48.Caption = Label48.Caption + 5

    If et = 3 Then Label48.Caption = Label48.Caption - 5

    If et = 4 Then Label48.Caption = Label48.Caption + 10

    If et = 5 Then Label48.Caption = Label48.Caption - 10

    If et = 6 Then Label48.Caption = Label48.Caption + 15

    If et = 7 Then Label48.Caption = Label48.Caption - 15

    If et = 8 Then Label56.Caption = Label48.Caption + 25

    If et = 9 Then Label48.Caption = Label48.Caption + 500

    If et = 10 Then Label48.Caption = Label48.Caption + 100

    If et = 11 Then Label48.Caption = Label48.Caption - 200

    If et = 12 Then Label48.Caption = 0

    If et = 13 Then Label48.Caption = 0

    If et = 14 Then End

    If et = 15 Then Label48.Caption = Label48.Caption - 10

    If et = 16 Then Label48.Caption = Label48.Caption - 5

    If et = 17 Then Label48.Caption = Label48.Caption - 1

    If et = 18 Then Label48.Caption = Label48.Caption + 1

    If et = 19 Then Label48.Caption = Label48.Caption + 5

    If et = 20 Then Label48.Caption = Label48.Caption - 25

    n = 1 'Больше не обрабатывать, т.к. маркер уже нарисован

    End If

    End Sub

    Теперь «подключим» процедуру подсчета очков – в каждую из процедур Click-а

    для ячеек нижней строки:

    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 'Указывает на ячейку, в которую установлен маркер

    Set_Marker_Count ‘Скорректировать счет

    End Sub

    Для остальных ячеек нижней строки – точно так же.

    Теперь напишем процедуру подсчета очков при сдвиге ячеек сверху – вниз.

    Процедура будет выглядеть чрезвычайно просто:

    Private Sub Dn_Count()

    'Подсчитать очки при сдвиге сверху - вниз

    n = 0 ‘Временно разрешить работу процедуры Set_Marker_Count

    Set_Marker_Count ‘Процедура подсчета очков при постановке маркера

    End Sub

    Для демонстрации работы процедуры вставим ее вызов в процедуру сдвига рядов

    ячеек сверху – вниз Frame1_Click():

    Private Sub Frame1_Click()

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

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

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

    Dn_Count 'Подсчитать очки при сдвиге сверху - вниз

    End Sub

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

    Создадим процедуру работы цветного линейного индикатора. Добавим на форму

    таймер Timer1 и сразу «разрешим» его.

    Private Sub Timer1_Timer()

    IndLent = IndLent + 1

    If IndLent = 9 Then

    IndLent = 0

    Timer1.Interval = 500 ‘Восстановим интервал таймера

    End If

    Print_Ind 'Нарисуем индикатор

    End Sub

    Процедура рисования индикатора:

    Private Sub Print_Ind()

    If IndLent = 1 Then Label55.Visible = False ‘Загасить элемент индикатора

    If IndLent = 2 Then Label54.Visible = False ‘Загасить элемент индикатора

    If IndLent = 3 Then Label53.Visible = False ‘Загасить элемент индикатора

    If IndLent = 4 Then Label52.Visible = False ‘Загасить элемент индикатора

    If IndLent = 5 Then Label51.Visible = False ‘Загасить элемент индикатора

    If IndLent = 6 Then Label50.Visible = False ‘Загасить элемент индикатора

    If IndLent = 7 Then Label49.Visible = False ‘Загасить элемент индикатора

    If IndLent = 7 Then Timer1.Interval = 100 ‘Уменьшить интервал, чтобы

    индикатор

    ‘восстанавливался побыстрее

    If IndLent = 0 Then ‘Нарисовать

    индикатор полностью

    Label55.Visible = True

    Label54.Visible = True

    Label53.Visible = True

    Label52.Visible = True

    Label51.Visible = True

    Label50.Visible = True

    Label49.Visible = True

    End If

    End Sub

    Можно посмотреть, как индикатор работает.

    Теперь таймер нужно «задизейблить» и разрешать только после того, как

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

    вставим в процедуру постановки маркера на нижней строке игрового поля (а

    точнее – в процедуру подсчета очков после установки маркера

    Set_Marker_Count(), т.к. она общая для всех ячеек нижнего уровня).

    В конце процедуры Set_Marker_Count() появится строка:

    Timer1.Enabled = True 'Разрешить таймер, т.к. маркер поставлен

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

    Когда цветной линейный индикатор полностью исчезнет, необходимо сдвинуть

    все строки с ячейками игрового поля сдвинуть вниз (процедура Frame1_Click()

    ), на маркер, подсчитать очки и заполнить верхнюю строку игрового поля

    новыми значениями номиналов.

    Процедура работы таймера Timer1 будет выглядеть следующим образом:

    Private Sub Timer1_Timer()

    IndLent = IndLent + 1

    If IndLent = 9 Then

    IndLent = 0

    Timer1.Interval = 500

    Frame1_Click 'Сдвинуть уровни

    End If

    Print_Ind 'Нарисовать индикатор

    End Sub

    Теперь нужно написать обработку нажатий клавиш и перемещения маркера вправо-

    влево по нижней строке ячеек игрового поля.

    Разместим на форме Form1 еще один таймер Timer2. Поставим интервал времени

    для Timer2 = 50 и поместим в процедуру работы принтера код проверки

    состояния клавиш:

    Объявим нужное для работы процедуры:

    Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long)

    As Integer

    И собственно код обработки:

    Private Sub Timer2_Timer()

    'Обработка нажатия клавиш "стрелка влево" и "стрелка вправо"

    If (GetAsyncKeyState(vbKeyLeft)) Then

    ' Кнопка влево

    Form1.Caption = "Left"

    ElseIf (GetAsyncKeyState(vbKeyRight)) Then

    ' Кнопка вправо

    Form1.Caption = "Right"

    End If

    End Sub

    Надписи в заголовке формы "Left" и "Right" выводятся только для отладки.

    Переменная markersave однозначно показывает в какой ячейке нижней строки

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

    влево по нижней строке:

    Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)

    'Обработка нажатия клавиш «стрелка вправо» и «стрелка влево»

    If (GetAsyncKeyState(vbKeyLeft)) Then

    ' Кнопка влево

    Form1.Caption = "Left"

    Move_Point_Left 'Переместить маркер влево

    ElseIf (GetAsyncKeyState(vbKeyRight)) Then

    ' Кнопка вправо

    Form1.Caption = "Right"

    Move_Point_Right 'Переместить маркер вправо

    End If

    End Sub

    Private Sub Move_Point_Left()

    If markersave = 0 Then 'Если самая левая ячейка нижней строки

    markersave = 7 'Левее самой левой ячейки – самая ПРАВАЯ

    (циклический переход)

    firstset = 0 'Временно разрешить рисование маркера

    Label7.BackColor = savecolor(0) 'Восстановить цвет фона ячейки, где БЫЛ

    маркер

    Label14_Click 'Переместить маркер (самая правая ячейка!)

    vt = markersave

    markersave = 10 'Запретить ложные срабатывания (значение 10 не

    соответствует

    ‘никакой ячейке)

    End If

    If markersave = 1 Then

    markersave = 0 'Поместить левее

    firstset = 0 'Временно разрешить рисование маркера

    Label8.BackColor = savecolor(1) 'Восстановить цвет ячейки, где БЫЛ

    маркер

    Label7_Click 'Переместить маркер

    vt = markersave

    markersave = 10 'Запретить ложные срабатывания (значение 10 не

    соответствует

    ‘никакой ячейке)

    End If

    If markersave = 2 Then

    markersave = 1 'Поместить левее

    firstset = 0 'Временно разрешить рисование маркера

    Label9.BackColor = savecolor(2) 'Восстановить цвет ячейки, где БЫЛ

    маркер

    Label8_Click 'Переместить маркер

    vt = markersave

    markersave = 10 'Запретить ложные срабатывания (значение 10 не

    соответствует

    ‘никакой ячейке)

    End If

    If markersave = 3 Then

    markersave = 2 'Поместить левее

    firstset = 0 'Временно разрешить рисование маркера

    Label10.BackColor = savecolor(3) 'Восстановить цвет ячейки, где БЫЛ

    маркер

    Label9_Click 'Переместить маркер

    vt = markersave

    markersave = 10 'Запретить ложные срабатывания (значение 10 не

    соответствует

    ‘никакой ячейке)

    End If

    If markersave = 4 Then

    markersave = 3 'Поместить левее

    firstset = 0 'Временно разрешить рисование маркера

    Label11.BackColor = savecolor(4) 'Восстановить цвет ячейки, где БЫЛ

    маркер

    Label10_Click 'Переместить маркер

    vt = markersave

    markersave = 10 'Запретить ложные срабатывания (значение 10 не

    соответствует

    ‘никакой ячейке)

    End If

    If markersave = 5 Then

    markersave = 4 'Поместить левее

    firstset = 0 'Временно разрешить рисование маркера

    Label12.BackColor = savecolor(5) 'Восстановить цвет ячейки, где БЫЛ

    маркер

    Label11_Click 'Переместить маркер

    vt = markersave

    markersave = 10 'Запретить ложные срабатывания (значение 10 не

    соответствует

    ‘никакой ячейке)

    End If

    If markersave = 6 Then

    markersave = 5 ''Поместить левее

    firstset = 0 'Временно разрешить рисование маркера

    Label13.BackColor = savecolor(6) 'Восстановить цвет ячейки, где БЫЛ

    маркер

    Label12_Click 'Переместить маркер

    vt = markersave

    markersave = 10 'Запретить ложные срабатывания (значение 10 не

    соответствует

    ‘никакой ячейке)

    End If

    If markersave = 7 Then

    markersave = 6 'Поместить левее

    firstset = 0 'Временно разрешить рисование маркера

    Label14.BackColor = savecolor(7) 'Восстановить цвет ячейки, где БЫЛ

    маркер

    Label13_Click 'Переместить маркер

    vt = markersave

    markersave = 10 'Запретить ложные срабатывания (значение 10 не

    соответствует

    ‘никакой ячейке)

    End If

    markersave = vt

    n = 0

    Set_Marker_Count

    End Sub

    Private Sub Move_Point_Right()

    If markersave = 0 Then 'Если самая левая ячейка

    markersave = 1 'Переместить правее (т.к. значение > на 1)

    firstset = 0 'Временно разрешить рисование маркера

    Label7.BackColor = savecolor(0) 'Восстановить цвет ячейки, где БЫЛ

    маркер

    Label8_Click 'Переместить маркер

    vt = markersave

    markersave = 10 'Запретить ложные срабатывания (значение 10 не

    соответствует

    ‘никакой ячейке)

    End If

    If markersave = 1 Then

    markersave = 2 'Переместить правее (т.к. значение > на 1)

    firstset = 0 'Временно разрешить рисование маркера

    Label8.BackColor = savecolor(1) 'Восстановить цвет ячейки, где БЫЛ

    маркер

    Label9_Click 'Переместить маркер

    vt = markersave

    markersave = 10 'Запретить ложные срабатывания (значение 10 не

    соответствует

    ‘никакой ячейке)

    End If

    If markersave = 2 Then

    markersave = 3 'Переместить правее (т.к. значение > на 1)

    firstset = 0 'Временно разрешить рисование маркера

    Label9.BackColor = savecolor(2) 'Восстановить цвет ячейки, где БЫЛ

    маркер

    Label10_Click 'Переместить маркер

    vt = markersave

    markersave = 10 'Запретить ложные срабатывания (значение 10 не

    соответствует

    ‘никакой ячейке)

    End If

    If markersave = 3 Then

    markersave = 4 'Переместить правее (т.к. значение > на 1)

    firstset = 0 'Временно разрешить рисование маркера

    Label10.BackColor = savecolor(3) 'Восстановить цвет ячейки, где БЫЛ

    маркер

    Label11_Click 'Переместить маркер

    vt = markersave

    markersave = 10 'Запретить ложные срабатывания (значение 10 не

    соответствует

    ‘никакой ячейке)

    End If

    If markersave = 4 Then

    markersave = 5 'Переместить правее (т.к. значение > на 1)

    firstset = 0 'Временно разрешить рисование маркера

    Label11.BackColor = savecolor(4) 'Восстановить цвет ячейки, где БЫЛ

    маркер

    Label12_Click 'Переместить маркер

    vt = markersave

    markersave = 10 'Запретить ложные срабатывания (значение 10 не

    соответствует

    ‘никакой ячейке)

    End If

    If markersave = 5 Then

    markersave = 6 'Переместить правее (т.к. значение > на 1)

    firstset = 0 'Временно разрешить рисование маркера

    Label12.BackColor = savecolor(5) 'Восстановить цвет ячейки, где БЫЛ

    маркер

    Label13_Click 'Переместить маркер

    vt = markersave

    markersave = 10 'Запретить ложные срабатывания (значение 10 не

    соответствует

    ‘никакой ячейке)

    End If

    If markersave = 6 Then

    markersave = 7 'Переместить правее (т.к. значение > на 1)

    firstset = 0 'Временно разрешить рисование маркера

    Label13.BackColor = savecolor(6) 'Восстановить цвет ячейки, где БЫЛ

    маркер

    Label14_Click 'Переместить маркер

    vt = markersave

    markersave = 10 'Запретить ложные срабатывания (значение 10 не

    соответствует

    ‘никакой ячейке)

    End If

    If markersave = 7 Then

    markersave = 0 'Переместить правее (т.к. значение > на 1)

    firstset = 0 'Временно разрешить рисование маркера

    Label14.BackColor = savecolor(7) 'Восстановить цвет ячейки, где БЫЛ

    маркер

    Label7_Click 'Переместить маркер

    vt = markersave

    markersave = 10 'Запретить ложные срабатывания (значение 10 не

    соответствует

    ‘никакой ячейке)

    End If

    markersave = vt

    n = 0

    Set_Marker_Count

    End Sub

    Теперь нужно сделать всего одну процедуру – процедуру сдвига нумерации

    текущих игровых уровней:

    Private Sub Level_Count()

    Label6.Caption = Label6.Caption + 1

    Label5.Caption = Label6.Caption + 1

    Label4.Caption = Label5.Caption + 1

    Label3.Caption = Label4.Caption + 1

    Label2.Caption = Label3.Caption + 1

    End Sub

    Подключим процедуру сдвига слоев к работе, например так:

    Private Sub Dn_Count()

    'Подсчитывать очки при сдвиге сверху вниз

    n = 0

    Set_Marker_Count

    Level_Count 'Сдвинуть уровни Level

    End Sub

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

    Показательный момент – написаны все процедуры для software-реализации

    игры Oflameron. Т.е. Вы создали совершенно работоспособную игровую

    программу на Visual Basic. Представлять ее как коммерческий продукт рано –

    еще много «шероховатостей». Например, если Click-нуть на объекте Frame, то

    игра начнется без установки маркера.

    Устранению таких «шероховатостей», приданию программе коммерческого

    вида будет посвящена 2-я часть руководства.

    - Часть 2 – доводка игровой программы

    - Часть 3 – разработка версии игры на VB для «наладонных» компьютеров

    - Часть 4 – разработка версии игры на Delphi

    - Часть 5 – разработка версии игры на JAVA для сотовых телефонов

    [pic]

    На сайте http://freeproject.narod.ru выложена другая версия

    программирования игры Oflameron на Visual Basic 6.0

    На сайте http://play-man.narod.ru выложена версия игры Oflameron на

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

    MS Word и играть.

    Резюме (не полное):

    - ассемблер – 8 лет

    - JAVA – 4 года

    - VB – 6 лет

    - PHP – 5 лет

    P.S. Не считайте это описание оптимальным. Но это лучшее руководство по

    программированию игры в РуНет-е.

    -----------------------

    Маркер

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


    Приглашения

    09.12.2013 - 16.12.2013

    Международный конкурс хореографического искусства в рамках Международного фестиваля искусств «РОЖДЕСТВЕНСКАЯ АНДОРРА»

    09.12.2013 - 16.12.2013

    Международный конкурс хорового искусства в АНДОРРЕ «РОЖДЕСТВЕНСКАЯ АНДОРРА»




    Copyright © 2012 г.
    При использовании материалов - ссылка на сайт обязательна.