Термінова допомога студентам
Дипломи, курсові, реферати, контрольні...

Программирование логічного гри на visual basic

РефератДопомога в написанніДізнатися вартістьмоєї роботи

Написать рахунок 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… Читати ще >

Программирование логічного гри на visual basic (реферат, курсова, диплом, контрольна)

Руководство для розробки динамічної логічного гри на 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.

[pic].

Колонці елементів Level і ігровому полю відповідатимуть числові масиви. [pic] Масив Dim level (5).

[pic] Масив Dim field (8, 6).

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

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

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

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

Программирование.

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

TM = Time «Одержати час у зміну TTMS = Len™ «Визначити довжину рядки з значенням часу TTM = Mid$(TM, 7, 2) «Виділити з рядки кількість секунд.

For і = 0 To TTM ‘Цикл із кількістю повторень, рівним кількості секунд Form1. Caption = Int ((20 * Rnd) + 1) ‘Значення запишемо в заголовок форми, чтобы.

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

Заполним масив field (8, 5). Повністю процедура буде: Private Sub Set_Nominal () TM = Time «Одержати час у зміну TTMS = Len™ «Визначити довжину рядки з значенням часу 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 для тимчасового зберігання «згенерованого» номіналу чарунки й її колірних атрибутів (виділено на рисунке).

[pic].

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 = Label56. BackColor If k = 1 Then Label8. ForeColor = Label56.ForeColor.

If k = 2 Then Label9. Caption = Label56. Caption 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 і 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 і = 0 To 7 field (i, j) = field (i, j + 1) Next і 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™ «Довжина рядки з часом TTM = Mid$(TM, 7, 2) «Виділити секунды.

For і = 0 To TTM «Повторити цикл стільки раз, скільки секунд Next і «————————————————————————— «Заповнити верхню рядок масиву field (i, 5) For і = 0 To 7 field (i, 5) = Int ((20 * Rnd) + 1) Next і «————————————————————————— «Заповнити верхню рядок номіналами, копіюючи їх із 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].

На сайті internet викладена інша версія програмування гри Oflameron на Visual Basic 6.0 На сайті internet викладена версія гри Oflameron на листочку паперу. Досить просто роздрукувати ігровий бланк з документа MS Word і играть.

Резюме (не повне): — асемблер — 8 років — JAVA — 4 року — VB — 6 років — PHP — 5 лет.

P. S. Не вважайте це опис оптимальним. Але воно посібник з програмування гри акторів-професіоналів у РуНет-е.

———————————- Маркер

Показати весь текст
Заповнити форму поточною роботою