Чим зайнятися айтишнику в армії або як я на VBA гри писав

Минуло вже більше двох місяців з моменту моєї демобілізації. Я вже освоївся на волі, прийшов час розповісти правду. Служив я в розвідці!.. «Секретна» в/ч ОсНаз ГРУ. За розподілом потрапив у відділ ЦРП (Центр радіоперехоплення). Робота не пильна, сидиш ночами в навушниках і слухаєш ворога. Але мова піде не про це.

У кожного оператора поста радіоперехоплення (такими ми числилися) був у розпорядженні комп'ютер з підключеними до нього РПУ (радіо-приймальними пристроями). На комп'ютері стояв спецсофт + Excel. Все інше було заблочено. Після N-ного чергування я став нудьгувати… Зачесалися руки.

Згадав, що колись мав справу з VBA. Ніколи далі написання найпростішої функції не заходив. Вирішив подивитися, що вийде при більш детальному вивченні. Після ночі мук я породив черепаху змію! Класична змійка, реалізована шляхом зафарбовування потрібних клітинок. Була можливість створювати собі перешкоди, знову ж таки, просто зафарбовуючи потрібні комірки.



Після змійки було ще парочка невеликих іграшок, але все це дрібниці…



Товариші ходили і клянчили, щоб я їм все це скинув, всім набридло грати в косинку. Способів зробити це я не знав. Порти USB відключені апаратно. Але, як з'ясувалося, всі комп'ютери об'єднані в локальну мережу. Запустивши через Excel командний рядок, я зміг зайти на сусідній комп'ютер і скинути туди необхідні файли. І тут мене осінило… Excel, VBA, читання/запис файлів, локальна мережа… Смекаете?

Морський бій
Першу версію я реалізував так само шляхом зафарбовування клітинок аркуша. Довгий час нікому не показував, доводили пізно вночі з одним.



Все працювало гідно, але перш ніж я викотив гру в маси, побачив проект хлопців, які служили до мене. Це був файловий менеджер, акуратно захований у начальника зміни на комп'ютері, реалізований на формах:



Респект цим хлопцям. До цього моменту я не бачив можливість використання форм на VBA. Не помітив відразу, та й не замислився над цим. Цієї ж ночі було вирішено переписати морський бій на формах. Код вийшов компактним, інтерфейс доброзичливішим, працездатність вище.



Робота у відділі встала! Морський бій люблять все… крім мене. Ну не подобається мені ці дурні перестрілки. Загалом, на ньому я не зупинився. Але, забігаючи вперед, скажу, що морський бій був найпопулярнішим.

Bomber Man
Хтось жартома сказав «а слабо написати Bomber Man?».
Виклик прийнятий! Місяць неквапливих мук і у світ вийшов ВІН.



Мініатюрки отрисованы в Paint. Гра розрахована на одночасне підключення 4-х осіб з різних комп'ютерів. Додаток клієнт-серверне. Сервер був запущений в окремому додатку. Кількість життів не обмежена (я думаю, за кількістю надгробків це зрозуміло).
Але все не так гладко, як здається. При записі/читанні файлів виникали помилки із-за одночасного звернення і домогтися більш 10 кадрів в секунду мені не вдалося. Якщо гра йшла на двох чоловік, то все вкладалося в 25-30 кадрів, але на чотирьох домогтися гарних швидкостей мені не вдалося. Відсутність інтернету не дало можливості знайти рішення.

Далі мене просили зробити танчики, але від розробки екшн ігор, зважаючи описаних вище проблем, я вирішив відмовитися.

Texas Holdem Poker NL (FR)
Я дуже люблю покер. В армії мені його дуже не вистачало. Реалізацію покеру на 9 людина я бачив не такою вже й складною. Хіба що над алгоритмами пошуку зібраної комбінації довелося поламати голову, але це було цікаво. Відсутність інтернету змусило напружитися. Одну ніч я витратив на малювання колоди карт. Іншу на стіл і фішки. А далі почався процес написання. Покер у мене вийшов швидше Bomber Man. В одну з ночей ми оттестировать його на максимальну кількість гравців, тести пройшли цілком успішно.



Але от пограти повноцінно так і не вдалося. Я захворів на пневмонію. Після повернення в частину на бойові чергування (за пост радіоперехоплення) я більше не повернувся, і до дембеля ходив в наряди.

Взагалі кажучи, це було дуже небезпечне і копітка справа, не дай бог хтось спалить за таким заняттям, та ще на бойовому чергуванні. Хто служив, той зрозуміє. За звичайну косинку знімали з чергувань і ставили в вбрання, а тут таке… Спасибі одному офіцерові (звання не називаю, бо це його видасть) за те, що скинув собі на флешку всі ці скріншоти і переслав мені на пошту. Залишу собі на згадку.

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.