Ако обичате да експериментирате с електронни таблици, ще ви е интересно това: дизайн на видеоигри в Excel. Невероятно е какво можете да постигнете с клетки, условно форматиране и няколко макроса. В тази статия ще ви покажем как.
Как е възможно това? Какви трикове в Excel трябва да знаете, за да завършите успешно този процес? Тази статия ви дава отговорите, с... реални примери за игри, направени в Excel и планът за действие, който трябва да следвате, за да преминете от идеята до прототипа.
Защо да създавате видеоигри в Excel?
Разработването на игри в Excel винаги е съществувало; за много хора то е започнало като лично предизвикателство или дори професионално начинание: „Ще мога ли да го направя с електронна таблица?“ С течение на времето това безпокойство е послужило като тяхна визитна картичка: Ако можете да създадете игра в Excel, можете да моделирате процеси, да оптимизирате отчети и да овладеете автоматизацията..
Всеки, който види сложна игра, работеща в работна книга на Excel, веднага разбира техническото ниво на нейния създател: креативни формули, интелигентни структури от данни, събития и добре организирани макроси. Същите елементи, които движат Tetris или Minesweeper в Excel, са тези, които след това ускоряват бизнес таблата и шаблоните..
Освен това, много помощни програми, създадени за една игра (енджини за колизии, генериране на нива, обработка на входни данни, рендиране на форми), се използват повторно в други проекти. Този „библиотечен“ ефект на макроси и функции в крайна сметка спестява часове и повишава качеството на разработка в Excel..

Какви игри са създадени с Excel?
Списъкът е дълъг и разнообразен, от емблематични пъзели до математически симулации. Тези реални примери демонстрират потенциала на Excel като платформа за създаване на прототипи и обучение..
Tetris
Тетрис е класика, която е оформила няколко поколения, с любопитна история: имаше битка за нейното пускане на пазара между Atari и Nintendo и накрая, дистрибуцията на Nintendo, с Хенк Роджърс зад нея, я катапултира към успех благодарение на появата ѝ на Game Boy. В Excel са възпроизведени варианти като този, базиран на Flash Point на SEGA, ценен заради прецизния си геймплей..
Дори са публикувани различни издания на един и същ проект (например оригинална версия от 2005 г. и по-вярно копие, издадено през 2018 г.). Отвъд историческия намек, програмирането на Tetris в Excel е перфектно упражнение за справяне с ротации на фигури, откриване на цяла линия и синхронизиране..
Судоку
Excel е идеален за логическа игра като Судоку: мрежи, валидации, проверки и, ако е необходимо, асистенти, които да помагат на играча. Някои версии ви позволяват да маркирате кандидати, да изтривате опити, да искате подсказки и дори да решавате дъската автоматично. Техническият трик е да се комбинират функциите за търсене, броене и правило, за да се гарантира валидността на дъските..
Змия
Геймплеят е прост и пристрастяващ: движете се по определена дъска, събирайте „храна“, растете и избягвайте сблъсъци със стени или собствената си опашка. В Excel главата на змията се контролира със стрелките, а останалата част от тялото ѝ следва примера ѝ, като се мести с една клетка с всяко тик-такване на играта. Това заглавие ви учи как да се справяте ефективно с колизии, опашки и обновяване на екрана..
Почит към Пийт Мондриан
Любопитен и силно визуален проект: избор на цветове и изграждане на геометрични композиции, вдъхновени от Мондриан, в Excel. Това не е типична „игра“, а по-скоро игрив творчески инструмент. Използва се за практикуване на интерфейси с бутони, цветови палитри и рисуване с форми и рамки на клетки..
Този тип шаблон доказва, че Excel може да бъде и интерактивно платно: избирате нюанси, комбинирате правоъгълници и експериментирате. Освен това е отлична тестова платформа за макроси, които манипулират формати и слоеве..
Игра на живота
Известният клетъчен автомат е „игра с нула играчи“: вие предоставяте начално състояние и системата се развива без допълнителна намеса. В Excel това е имплементирано върху теоретично безкрайна мрежа, въпреки че на практика е ограничено до диапазона, който проектираме. Той е идеален за работа с квартали, условни правила и генериране стъпка по стъпка..
миночистач
Замислена от Робърт Донър през 1989 г., целта ѝ е да разчисти поле, без да взривява мини, подкрепено от числа, показващи колко мини има наоколо. Тя е широко адаптирана към Excel както от аматьори, така и от професионалисти. Това е чудесен тест за практикуване на броене, рекурсивно разпространение и минималистичен потребителски интерфейс..
Освен това е лесно да се загуби представа за времето: пристрастяващо е. Най-интересната техническа част обикновено е в двигателя, който разширява празните клетки, и в генерирането на безпристрастни мини..
Boxxle / Сокобан
Класическият метод за бутане на кутии до местоназначението им е известен с много имена, но същността му е винаги една и съща: бутане, не влачене; планиране; не блокиране на пътища. В Excel е идеален за практикуване на карти, откриване на препятствия и валиден контрол на движението..
Палачът
Правилата варират: някои рисуват бесилката от нулата, докато други довършват части, когато се провалят. В Excel, освен управлението на речника от думи и опити, можете да анимирате рисунката с форми или символи. Програмистите и ентусиастите често променят логиката и представянето, за да го направят по-привлекателно..
Как да създадете игра като тази във видеото: Практически процес
Представете си, че искате да пресъздадете мини-игра като тази в късометражния филм в YouTube: мрежа от клетки, движещи се фигури, логика на сблъсък и точкуване. Предлагам ясен работен процес, който работи както за малки прототипи, така и за по-амбициозни заглавия в Excel..
- Дизайн на таблото. Определете диапазона, който ще действа като „светът“ на играта (напр. B3:AE32). Задайте цветове за фон, рамки и, ако желаете, използвайте условно форматиране, за да маркирате състояния (храна, опасност, цел). Именуването на диапазони (Формули > Мениджър на имена) ви предпазва от загадъчни препратки.
- Представителство на държаватаРешете как ще съхранявате играта: клетки с кодове (0 празни, 1 стена, 2 играчи и т.н.) или масив в паметта (VBA), който след това ще рисувате върху листа. За бързи игри е достатъчно рисуването с цветове на клетки; за плавни анимации използвайте фигури (Shapes) и актуализирайте само най-важното.
- Въвеждане от потребителяИзползвайте Application.OnKey във VBA, за да заснемате клавиши със стрелки, интервал или други клавиши. Избягвайте да четете натисканията на клавиши в Worksheet_Change, защото клавиатурата не задейства промени в клетките. OnKey ви дава незабавен и плавен контрол върху движенията.
- Игров цикъл. Създайте цикъл, контролиран от глобален флаг (Running = True), който актуализира състоянието на равни интервали. Регулирайте темпото с Application.Wait или лек таймер и DoEvents, за да поддържате интерфейса отзивчив. Този „тик“ е сърцето на играта: той изчислява, открива колизии и рендира.
- Сблъсъци и правила. В зависимост от типа на играта, проверката за сблъсък се извършва спрямо стени, опашки, обекти или ограничения на обхвата. В Tetris ще добавите ротация и валидиране на празнини; в Snake - преминаване по опашка и произволна храна; в Minesweeper - броячи на обкръжаващите елементи. Добра идея е тази логика да се капсулира в малки, тестваеми функции.
- оказванеМинимизиране на трептенето: Деактивирайте актуализирането на екрана по време на тиктака (Application.ScreenUpdating = False) и го активирайте отново в края. Рисувайте само това, което се променя. Обновяването на по-малко клетки = повече FPS и по-добро изживяване.
- Резултат и състояние на игратаЗапазете резултата, нивото, животите и високия си резултат в специални клетки или в модул. Добавете бутон „Рестартиране“ и „Пауза/Продължение“. Видимите контроли насърчават тестването и улесняват отстраняването на грешки.
- ТестовеСъздавайте тестови сценарии: малки нива, ограничени позиции, фиксирани начални точки за случайност и „бавен“ режим за преглед на грешки. Записвайте събития (сблъсъци, поява) в дневник, за да анализирате необичайно поведение.
Полезни формули и техники за видеоигри в Excel
Отвъд VBA, функциите могат да решат много от задачите на енджина. Ето някои практични формули и ресурси за вграждане на логика в електронната таблица..
– Контролирана случайност: RANDBETWEEN и RAND за поставяне на храна или мини, комбинирани с ръчно задаване на семена, ако искате възпроизводимост. Използвайте клетка „Seed“ и насочете изчислението към повтарящи се сценарии.
– Индексиране на клетки: INDEX за четене на стойности на мрежата и OFFSET или CHOOSE за изчисляване на съседи или прости завъртания. С MATCH можете да локализирате координатите на ключови елементи.
– Броене и валидиране: COUNTIF/COUNTIFS за броене на околните мини, парчета в редица или сблъсъци; SUMPRODUCT за по-сложни модели в двуизмерни диапазони. В комбинация с динамични матрици, те позволяват изразителни правила.
– Условна логика: IF, IFS, SWITCH и LET за ясни структури; с LAMBDA (Microsoft 365) е възможно да се капсулират поведения (напр. „Съседи(x,y)“) без VBA. NAME + LAMBDA създава вашата персонализирана библиотека с функции.
– Условно форматиране: Автоматично оцветяване на състоянията въз основа на стойности или формули; избягвайте макроси за всяка визуална промяна. Използвайте го, за да маркирате колизии, цели или активни части.
– Валидиране на данни: Ограничава въвеждането от потребителя (напр. само букви без ударения в Hangman). Това намалява грешките и улеснява UX.
Ако решите да използвате VBA, минималният скелет за цикли и обработка на натискания на клавиши може да изглежда така (опростен и без зависимости): Този модел разделя входа, актуализирането и рисуването, така че проектът да се мащабира по-добре..
' Módulo de juego (ejemplo simplificado)
Option Explicit
Public Running As Boolean, DirX As Long, DirY As Long
Sub StartGame()
Running = True
DirX = 1: DirY = 0 ' movimiento inicial hacia la derecha
Application.OnKey "{UP}", "GoUp"
Application.OnKey "{DOWN}", "GoDown"
Application.OnKey "{LEFT}", "GoLeft"
Application.OnKey "{RIGHT}", "GoRight"
GameLoop
End Sub
Sub StopGame()
Running = False
Application.OnKey "{UP}"
Application.OnKey "{DOWN}"
Application.OnKey "{LEFT}"
Application.OnKey "{RIGHT}"
End Sub
Sub GameLoop()
Do While Running
Application.ScreenUpdating = False
UpdateState
RenderState
Application.ScreenUpdating = True
DoEvents
Application.Wait Now + TimeSerial(0, 0, 0) + TimeValue("00:00:00.08") ' ~12.5 fps
Loop
End Sub
Sub GoUp(): DirX = 0: DirY = -1: End Sub
Sub GoDown(): DirX = 0: DirY = 1: End Sub
Sub GoLeft(): DirX = -1: DirY = 0: End Sub
Sub GoRight(): DirX = 1: DirY = 0: End Sub
За да се сведе до минимум трептенето, избягвайте изчистването и прерисуването на цялата мрежа при всяко отчитане: изчислете кои клетки са се променили и ги актуализирайте. Ключът към производителността в Excel е да се докосват възможно най-малко клетки на цикъл..
Бележки за поверителност и използване на бисквитки на платформи
Ако използвате общности като Reddit за вдъхновение или обратна връзка, имайте предвид техните известия за поверителност: те разкриват, че използват „бисквитки“ и подобни технологии, за да предоставят услугата, да подобрят качеството, да персонализират съдържанието и рекламите и да измерват ефективността си; предлагат опции за приемане на всички, отхвърляне на несъществено съдържание или коригиране на предпочитанията и предоставят връзка към тяхното известие за „бисквитките“ и политика за поверителност. Това е настоящият стандарт: прозрачност, потребителски контрол и гарантирана основна функционалност, дори ако отхвърлите ненужното..
Ресурси, файлове за изтегляне и как да споделяте работата си
Има уебсайтове, които публикуват своите игри в Excel, за да можете да ги изтеглите и да им се наслаждавате известно време, от Tetris до Sudoku, Snake, Mondrian, The Game of Life, Minesweeper, Sokoban/Boxxle или Hangman. Тази библиотека с примери служи като вдъхновение и като хранилище от техники за многократна употреба..
Публикуването на ваша собствена книга с инструкции, контроли и информация за авторите насърчава общността да я тества и подобрява. Включете страница „За нас“ с версии, промени и преки пътища. Колкото по-ясна е документацията, толкова по-качествена обратна връзка ще получите..
Когато споделяте, моля, посочете целевата версия на Excel (365, 2019 и др.) и дали изисква активиране на макроси. Предоставете версия „само с формули“, ако е възможно, и друга версия с VBA за най-добро преживяване. По този начин разширявате обхвата си и намалявате бариерите за навлизане..
Създаването на видеоигри в Excel не е просто любопитство: това е преносима лаборатория за изучаване на структури от данни, събития, производителност и потребителско изживяване, всичко това в инструмент, който вече сте усвоили. От тетрис, вдъхновен от Flash Point на SEGA и анекдота му с Nintendo и Хенк Роджърс, до судоку с улики, змия с динамични опашки или Миночистач на Робърт Донър, всеки пример ви учи на нова техника.С добре дефинирано табло за управление, изчистен цикъл на изпълнение и дисциплинирано тестване, ще постигнете забавни прототипи, които също така ще засилят способността ви да изграждате надеждни табла за управление и автоматизации в ежедневната си работа.
