Реферати українською » Информатика, программирование » Програмування логічного гри на visual basic


Реферат Програмування логічного гри на visual basic

Страница 1 из 4 | Следующая страница

Посібник із розробці динамічної логічного гри на Visual Basic 6.0

 

Пошаговое опис процесу програмування всіх процедур гри Oflameron – Он-Лайн версія.

Дане керівництво містить докладний опис процесу розробки повного аналога JAVA-игры на Visual Basic 6.0 (частина 1). У наступних частинах документа:

                - Частина 2 – доведення ігровий програми

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

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

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

OFLAMERON

Частина 1

Створимо проект формату Project EXE. Створимо форму Form1 розміром 2715х5745. На формі розташуємо елемент Frame, а ньому розмістимо елементи Label1 – Label55. Де Label1 – Label6 це колонка Level. А Label7 – Label46 – осередки ігрового половіючі жита із номіналами. Label 47-48 – осередки для службової інформації. Нижній кольорової індикатор освічений Label49-Label55.

            Колонке елементів Level і ігровому полю відповідатимуть числові масиви.

  Масив Dim level(5)

  Масив Dim field(8, 6)

            Короткий опис гри. Гра починається з установки гравцем маркера на будь-яку осередок нижнього низки осередків (просто Click-нуть мишкою). Така осередок виділяється синім кольором,

а номінал зайнятою осередки додається (або віднімається) до рахунку гравця. Нижній кольорової лінійний індикатор починає коротшати. Поки індикатор незнищенним залишився, гравець може переміщати ігровий маркер по нижньої рядку вправо чи вліво від того плинного становища натискаючи на клавіатурі стрілки «Вправо» чи «Влево». Номиналы всіх осередків, які буде «проходити» маркер, будуть додаватись (чи вычитаться) до рахунку. Щойно весь кольорової лінійний індикатор зникне, гравець неспроможна переміщати свій маркер (якусь мить), а номінали всіх осередків зсуваються зверху-вниз однією рядок. Верхня рядок ігрового поля заповнюється новими значеннями від генератора випадкових чисел. У цьому, номінал осередки, сдвинувшейся згори на осередок, у якій перебуває маркер, як і додається до рахунку – це може істотно змінити рахунок. Після цього кольорової лінійний індикатор відновлюється й починає знову коротшати, а гравець знову може переміщати ігровий маркер.

Рахунок гри ведеться у помаранчевій осередку

Гра ведеться до того часу, поки рахунок гравця стане рівним нулю чи маркер не потрапить на осередок з номіналом |End|.

            Гра зовсім по-іншому проста, як здається. Зовсім легко розмістити свій маркер отже нею зміститься осередок з номіналом |Z| - обнуління рахунки, чи |End| - закінчення гри.

            Тут описується процес програмування «текстовій версії» логічного табличній гри «Oflameron». Номиналы осередків представлені на екрані в символьному вигляді, а осередки є елементи Label. У наступній частини документа буде подано повне опис процесу розробки графічної версії ігри та зовсім версії гри для кишенькових компьтеров (PDA).

Програмування

            Заполним осередки ігрового (масив field(8, 6))поля значеннями від генератора випадкових чисел. Вычислим кількість секунд нинішнього року часу й стільки раз «прокрутимо» цикл зі зверненням до генератору випадкових чисел:

TM = Time 'Одержати час у зміну

TTMS = Len(TM) 'Визначити довжину рядки з значенням часу

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

For і = 0 To TTM ‘Цикл із кількістю повторень, рівним кількості секунд

Form1.Caption = Int((20 * Rnd) + 1) ‘Значення запишемо в заголовок форми, щоб

                                                              ‘подивитися, який працює

Next і

Заполним масив field(8, 5). Повністю процедура буде:

Private Sub Set_Nominal()

TM = Time 'Одержати час у зміну

TTMS = Len(TM) 'Визначити довжину рядки з значенням часу

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

For і = 0 To TTM          

Form1.Caption = Int((20 * Rnd) + 1)

Next і

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

' Заполним масив field(8, 5)

For і = 0 To 7

  For j = 0 To 4

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

  Next j

Next і

End Sub

Нині можна записати тестову процедуру Private Sub Fdraw() у тому, щоб подивитися, як заповнюється масив field(8, 6)

Процедура виглядатиме так:

Private Sub Fdraw()

Label7.Caption = field(0, 0)

Label8.Caption = field(1, 0)

Label9.Caption = field(2, 0)

Label10.Caption = field(3, 0)

Label11.Caption = field(4, 0)

Label12.Caption = field(5, 0)

Label13.Caption = field(6, 0)

Label14.Caption = field(7, 0)

Label15.Caption = field(0, 1)

Label16.Caption = field(1, 1)

Label17.Caption = field(2, 1)

Label18.Caption = field(3, 1)

Label19.Caption = field(4, 1)

Label20.Caption = field(5, 1)

Label21.Caption = field(6, 1)

Label22.Caption = field(7, 1)

Label23.Caption = field(0, 2)

Label24.Caption = field(1, 2)

Label25.Caption = field(2, 2)

Label26.Caption = field(3, 2)

Label27.Caption = field(4, 2)

Label28.Caption = field(5, 2)

Label29.Caption = field(6, 2)

Label30.Caption = field(7, 2)

Label31.Caption = field(0, 3)

Label32.Caption = field(1, 3)

Label33.Caption = field(2, 3)

Label34.Caption = field(3, 3)

Label35.Caption = field(4, 3)

Label36.Caption = field(5, 3)

Label37.Caption = field(6, 3)

Label38.Caption = field(7, 3)

Label39.Caption = field(0, 4)

Label40.Caption = field(1, 4)

Label41.Caption = field(2, 4)

Label42.Caption = field(3, 4)

Label43.Caption = field(4, 4)

Label44.Caption = field(5, 4)

Label45.Caption = field(6, 4)

Label46.Caption = field(7, 4)

End Sub

Тобто. тут просто кожна осередок записується в Caption кожної осередки. Такий метод годі вважати оптимальним і надалі можна використовувати інші прийоми програмування. Щоб подивитися резльтаты, потрібно вставити виклик двох процедур Private Sub Set_Nominal() і Private Sub Fdraw() в автозапуск при старті програми (тимчасово):

Private Sub Form_Load()

Set_Nominal

Fdraw

End Sub

Повний проект на Visual Basic цього етапу розробки гри – в файлі vbg1.zip

Тепер треба створити процедуру, у якій аналізуватися вміст осередків масиву field(8, 6) і залежно від своїх значень формуватиметься потрібне символьне значення (номінал) осередки ігрового поля і задаватися потрібний колір символу і фону осередки.

            Перепишем процедуру Fdraw() до іншої процедуру. Створимо ще одне Label56 для тимчасового зберігання «згенерованого» номіналу чарунки й її колірних атрибутів (виділено малюнку).

Private Sub Color_Chars()

If field(i, j) = 0 Then Label56.Caption = "+1"

If field(i, j) = 0 Then Label56.BackColor = &HBBECF4

If field(i, j) = 0 Then Label56.ForeColor = &H80000008

If field(i, j) = 1 Then Label56.Caption = "-1"

If field(i, j) = 1 Then Label56.BackColor = &HBBECF4

If field(i, j) = 1 Then Label56.ForeColor = &H80000008

If field(i, j) = 2 Then Label56.Caption = "+5"

If field(i, j) = 2 Then Label56.BackColor = &HBBECF4

If field(i, j) = 2 Then Label56.ForeColor = &H80000008

If field(i, j) = 3 Then Label56.Caption = "-5"

If field(i, j) = 3 Then Label56.BackColor = &HBBECF4

If field(i, j) = 3 Then Label56.ForeColor = &H80000008

If field(i, j) = 4 Then Label56.Caption = "+10"

If field(i, j) = 4 Then Label56.BackColor = &HBBECF4

If field(i, j) = 4 Then Label56.ForeColor = &H80000008

If field(i, j) = 5 Then Label56.Caption = "-10"

If field(i, j) = 5 Then Label56.BackColor = &HBBECF4

If field(i, j) = 5 Then Label56.ForeColor = &H80000008

If field(i, j) = 6 Then Label56.Caption = "+15"

If field(i, j) = 6 Then Label56.BackColor = &HBBECF4

If field(i, j) = 6 Then Label56.ForeColor = &H80000008

If field(i, j) = 7 Then Label56.Caption = "-15"

If field(i, j) = 7 Then Label56.BackColor = &HBBECF4

If field(i, j) = 7 Then Label56.ForeColor = &H80000008

If field(i, j) = 8 Then Label56.Caption = "+25"

If field(i, j) = 8 Then Label56.BackColor = &HBBECF4

If field(i, j) = 8 Then Label56.ForeColor = &H80000008

If field(i, j) = 9 Then Label56.Caption = "T"

If field(i, j) = 9 Then Label56.BackColor = &HABCFBB

If field(i, j) = 9 Then Label56.ForeColor = &H80000008

If field(i, j) = 10 Then Label56.Caption = "P"

If field(i, j) = 10 Then Label56.BackColor = &HFFC0C0

If field(i, j) = 10 Then Label56.ForeColor = &H80000008

If field(i, j) = 11 Then Label56.Caption = "B"

If field(i, j) = 11 Then Label56.BackColor = &H80FFFF

If field(i, j) = 11 Then Label56.ForeColor = &H80000008

If field(i, j) = 12 Then Label56.Caption = "Z"

If field(i, j) = 12 Then Label56.BackColor = &H40&

If field(i, j) = 12 Then Label56.ForeColor = &HFFFFFF

If field(i, j) = 13 Then Label56.Caption = "Z"

If field(i, j) = 13 Then Label56.BackColor = &H40&

If field(i, j) = 13 Then Label56.ForeColor = &HFFFFFF

If field(i, j) = 14 Then Label56.Caption = "End"

If field(i, j) = 14 Then Label56.BackColor = &HFF&

If field(i, j) = 14 Then Label56.ForeColor = &HFFFFFF

If field(i, j) = 15 Then Label56.Caption = "-10"

If field(i, j) = 15 Then Label56.BackColor = &HBBECF4

If field(i, j) = 15 Then Label56.ForeColor = &H80000008

If field(i, j) = 16 Then Label56.Caption = "-5"

If field(i, j) = 16 Then Label56.BackColor = &HBBECF4

If field(i, j) = 16 Then Label56.ForeColor = &H80000008

If field(i, j) = 17 Then Label56.Caption = "-1"

If field(i, j) = 17 Then Label56.BackColor = &HBBECF4

If field(i, j) = 17 Then Label56.ForeColor = &H80000008

If field(i, j) = 18 Then Label56.Caption = "+1"

If field(i, j) = 18 Then Label56.BackColor = &HBBECF4

If field(i, j) = 18 Then Label56.ForeColor = &H80000008

If field(i, j) = 19 Then Label56.Caption = "+5"

If field(i, j) = 19 Then Label56.BackColor = &HBBECF4

If field(i, j) = 19 Then Label56.ForeColor = &H80000008

End Sub

Тепер додамо копіювання значення й атрибутів осередки Label56 в осередок ігрового поля і використовуємо кілька циклів в обробці всього масиву field(8, 6):

- приклад копіювання

Label7.Caption = Label56.Caption

Label7.BackColor = Label56.BackColor

Label7.ForeColor = Label56.ForeColor

У результаті з'явиться процедура Sub Field_Fill() копіювання номіналів з «чергової» осередки Label56, а процедура Color_Chars() зміниться так:

Private Sub Color_Chars()

If field(i, j) = 0 Then Label56.Caption = "+1"

If field(i, j) = 0 Then Label56.BackColor = &HBBECF4

If field(i, j) = 0 Then Label56.ForeColor = &H80000008

If field(i, j) = 1 Then Label56.Caption = "-1"

If field(i, j) = 1 Then Label56.BackColor = &HBBECF4

If field(i, j) = 1 Then Label56.ForeColor = &H80000008

If field(i, j) = 2 Then Label56.Caption = "+5"

If field(i, j) = 2 Then Label56.BackColor = &HBBECF4

If field(i, j) = 2 Then Label56.ForeColor = &H80000008

If field(i, j) = 3 Then Label56.Caption = "-5"

If field(i, j) = 3 Then Label56.BackColor = &HBBECF4

If field(i, j) = 3 Then Label56.ForeColor = &H80000008

If field(i, j) = 4 Then Label56.Caption = "+10"

If field(i, j) = 4 Then Label56.BackColor = &HBBECF4

If field(i, j) = 4 Then Label56.ForeColor = &H80000008

If field(i, j) = 5 Then Label56.Caption = "-10"

If field(i, j) = 5 Then Label56.BackColor = &HBBECF4

If field(i, j) = 5 Then Label56.ForeColor = &H80000008

If field(i, j) = 6 Then Label56.Caption = "+15"

If field(i, j) = 6 Then Label56.BackColor = &HBBECF4

If field(i, j) = 6 Then Label56.ForeColor = &H80000008

If field(i, j) = 7 Then Label56.Caption = "-15"

If field(i, j) = 7 Then Label56.BackColor = &HBBECF4

If field(i, j) = 7 Then Label56.ForeColor = &H80000008

If field(i, j) = 8 Then Label56.Caption = "+25"

If field(i, j) = 8 Then Label56.BackColor = &HBBECF4

If field(i, j) = 8 Then Label56.ForeColor = &H80000008

If field(i, j) = 9 Then Label56.Caption = "T"

If field(i, j) = 9 Then Label56.BackColor = &HABCFBB

If field(i, j) = 9 Then Label56.ForeColor = &H80000008

If field(i, j) = 10 Then Label56.Caption = "P"

If field(i, j) = 10 Then Label56.BackColor = &HFFC0C0

If field(i, j) = 10 Then Label56.ForeColor = &H80000008

If field(i, j) = 11 Then Label56.Caption = "B"

If field(i, j) = 11 Then Label56.BackColor = &H80FFFF

If field(i, j) = 11 Then Label56.ForeColor = &H80000008

If field(i, j) = 12 Then Label56.Caption = "Z"

If field(i, j) = 12 Then Label56.BackColor = &H40&

If field(i, j) = 12 Then Label56.ForeColor = &HFFFFFF

If field(i, j) = 13 Then Label56.Caption = "Z"

If field(i, j) = 13 Then Label56.BackColor = &H40&

If field(i, j) = 13 Then Label56.ForeColor = &HFFFFFF

If field(i, j) = 14 Then Label56.Caption = "End"

If field(i, j) = 14 Then Label56.BackColor = &HFF&

If field(i, j) = 14 Then Label56.ForeColor = &HFFFFFF

If field(i, j) = 15 Then Label56.Caption = "-10"

If field(i, j) = 15 Then Label56.BackColor = &HBBECF4

If field(i, j) = 15 Then Label56.ForeColor = &H80000008

If field(i, j) = 16 Then Label56.Caption = "-5"

If field(i, j) = 16 Then Label56.BackColor = &HBBECF4

If field(i, j) = 16 Then Label56.ForeColor = &H80000008

If field(i, j) = 17 Then Label56.Caption = "-1"

If field(i, j) = 17 Then Label56.BackColor = &HBBECF4

If field(i, j) = 17 Then Label56.ForeColor = &H80000008

If field(i, j) = 18 Then Label56.Caption = "+1"

If field(i, j) = 18 Then Label56.BackColor = &HBBECF4

If field(i, j) = 18 Then Label56.ForeColor = &H80000008

If field(i, j) = 19 Then Label56.Caption = "+5"

If field(i, j) = 19 Then Label56.BackColor = &HBBECF4

If field(i, j) = 19 Then Label56.ForeColor = &H80000008

'Label7.Caption = Label56.Caption

'Label7.BackColor = Label56.BackColor

'Label7.ForeColor = Label56.ForeColor

'Form1.Caption = field(0, 0)

End Sub

Private Sub Field_Fill()

'Копіювання номіналів і атрибутів з «чергової» осередки Label56

k = 0 ‘Лічильник осередків

For j = 0 To 4

  For і = 0 To 7

  Color_Chars 'Поместить таке значення з масиву field(i, j) в Label56

                       ‘і обчислити колірні атрибути символу і фону з її номіналу

  If k = 0 Then Label7.Caption = Label56.Caption

  If k = 0 Then Label7.BackColor = Label56.BackColor

  If k = 0 Then Label7.ForeColor = Label56.ForeColor

 

  If k = 1 Then Label8.Caption = Label56.Caption

  If k = 1 Then Label8.BackColor =

Страница 1 из 4 | Следующая страница

Схожі реферати:

  • Реферат на тему: Програмування на Delphi
    Цей курс присвячений середовищі розробки Delphi фірми Borland (відому як Inprise), що протягом
  • Реферат на тему: Програмування на Object Pascal серед Delphi
    Лабораторная робота №1 Програмування лінійних алгоритмів Мета лабораторної роботи: вивчити основні
  • Реферат на тему: Програмування на З++
    МІНІСТЕРСТВО СПІЛЬНОГО І ПРОФЕССИОНАЛЬНОГО ОСВІТИ РОСІЙСЬКОЇ ФЕДЕРАЦІЇ. МОСКОВСЬКИЙ ДЕРЖАВНИЙ
  • Реферат на тему: Програмування мовами високого рівня
    МОСКОВСЬКИЙ ІНСТИТУТ РАДИОТЕХНИКИ, ЭЛЕКТРОНИКИ І АВТОМАТИКИ (ТЕХНИЧЕСКИЙ УНІВЕРСИТЕТ) КУРСОВАЯ
  • Реферат на тему: Програмування мовою CLIPS
    Міністерство спільного освітнього і професійної освіти Російської Федерації Кубанський Державний

Навігація