Разное

Игры в excel: RPG-игра в рабочей книге Excel / Хабр

Содержание

Excel для игр? Почему бы и нет, 5 игр, в которые вы сможете сыграть в MS Excel.

MS Excel – табличный процессор очень здорово выручает при выполнении широкого круга задач, от решения транспортных задач, или нахождения корней полиномов до фильтрации данных и моделирования экономических ситуаций, с помощью Excel можно даже писать программные решения. Но, если можно писать программы, то может можно и игры, ведь, по сути, игра – это та же программа. Абсолютно верное предположение, представляем Вашему вниманию шесть игр, написанных в Excel.

Чтобы запустить игру, необходимо наличие табличного процессора Excel, а также нужно разрешить выполнение макросов.

2048.

Первая игра с незамысловатым названием 2048.

Суть игры заключается в том, чтобы собрать один квадрат с числом 2048, до того, как на поле закончатся пустые клетки, двигая поле в одном из четырех направлений за один ход, если рядом находятся квадраты с одинаковым числом, они сливаются. За каждый ход пользователя на поле появляется дополнительная клетка с минимальным числом «2». Игра очень затягивает, поэтому хорошенько подумайте, прежде чем запустить.

Ссылка, по которой можно закачать книгу excel с игрой.

Но это еще не все, если игра Вам пришлась по вкусу, но вы боитесь быть пойманным, все-таки, хоть игра и находится в среде Excel, объяснить, что это полезно по работе будет достаточно сложно, особенно в режиме 3D, поэтому есть версия, замаскированная под финансовый отчет.

Правила те же, только все действо осуществляется на поле G8:J12. Скачать замаскированную версию можно по ссылке.

Candy Number Crunch Saga.

Здесь вы можете почувствовать себя трейдером на бирже прямо из книги Excel. Скрытой версии нет, но если удалить цветастые буквы, то можно притворится, что документ относится к работе (конечно, если вы не на стройке разгружаете кирпичи, а то вообще странно будет выглядеть).

Ссылка на файл Excel.

Монополия.

Эта игра не нуждается в представлении, теперь для того, чтобы в нее играть Вам нужен только Excel.

Ссылка на файл Excel.

3D лабиринт.

Трехмерным его можно назвать условно, но выглядит впечатляюще, интересно что дальше? Портирование DOOM в Excel? Не исключено.

Arena.Xlsm

Ролевая игра, выполненная в Excel, включает 2000 всевозможных противников, 1000 вариантов комбинации различных вещей, 31 заклинание и 4 концовки.

Скачать Arena.Xlsm можно по ссылке.

— Advertisement —

Пишем игру «Жизнь» (Life) на VBA в Excel


Развлекая — поучай.
(Гораций)


Если вы уже имели какой-то опыт программирования в прошлой жизни (привет, Basic, Pascal и т.д.), то, скорее всего, уже прошли этап «игрописательства». Однако, тряхнуть стариной и размять мозги вполне можно. Если же вы никогда не программировали игр, то никогда не поздно начать этот весьма увлекательный процесс. Всё, что нам потребуется — это Excel (любой версии) и 15-20 минут времени для начала.


Тренироваться будем на известной в узких кругах программистов игре «Жизнь» (Life). Её придумал британский математик Джон Конвей еще в 1970 году на основе работ легендарного Джона фон Неймана — прадедушки всех современных компьютеров. Если вы не сталкивались с ней раньше — не проблема, правила можно объяснить за полминуты:


  • Игра идет на большом (иногда даже бесконечном) поле в клеточку («вселенной»). Как вы понимаете, Excel для такого подходит идеально :)


  • В один момент времени каждая клетка может быть в двух состояниях — живой (обозначим её каким-нибудь значком или просто единичкой) или же мертвой (пустой). Начальное состояние всех клеток в игре называют первым поколением.


  • Если брать блок клеток 3х3 с текущей клеткой в середине, то вокруг неё оказывается 8 клеток-соседей. Дальнейшая судьба клетки зависит от того, сколько именно живых клеток (N) окажется в этой окружающей области. Вариантов несколько:


  • Если клетка была пустая (мертвая), но у нее есть ровно 3 живых соседа, то в ней зарождается жизнь.
  • Если клетка живая, но у неё меньше 2 соседей, то она умирает от одиночества.
  • Если клетка живая, но у неё больше 3 соседей, то она умирает от перенаселения.
  • Если клетка живая и у нее 2-3 соседа, то клетка продолжает жить.


Вот, собственно, и все правила. Можно даже сказать, что всё это неправильно называть игрой, т.к. здесь нет соперников в привычном понимании. Вы расставляете первое поколение, запускаете процесс и затем просто наблюдаете за развитием вашей «колонии» на протяжении нескольких поколений.


Однако, не стоит недооценивать обманчивую простоту этой логики — количество комбинаций, сценариев игры и многообразие фигур в такой игровой вселенной поражает своим разнообразием и поистине бесконечно. В математике подобные модели называют клеточными автоматами. А самое интересное, что реализовать подобную модель можно в любой версии Excel буквально на 20 строчках кода.


Поехали.

Шаг 1. Готовим игровое пространство


Создадим в новой книге три листа:

  • game — это будет основной листы игры, где мы будем наблюдать за развитием нашей «колонии»
  • next — этот лист будет формировать следующее поколение, которое затем придет на смену текущему
  • start — на этом листе мы будем задавать начальную конфигурацию, т.е. первое поколение в нашей игре


На каждом листе (можно выделить их заранее, удерживая клавишу Shift или Ctrl, чтобы не повторять трижды одни и те же действия), разметим игровое поле размером, допустим, 30 на 30 ячеек. Впоследствии размер поля можно будет подправить в соответствии с вашими аппетитами и мощью вашего ПК:



На листе start разметим с помощью единичек первое поколение любым желаемым образом:

Шаг 2. Пишем макрос


Теперь пришла пора расчехлить наш VBA и написать макрос, который и будет делать всю работу, а именно:

  1. Копировать первое поколение с листа start на лист game.
  2. Проходить по ячейкам игрового поля на листе game и проверять окружающих соседей (блок 3х3) для каждой из них.
  3. В зависимости от результатов проверки помечать на листе следующего поколения next ту же ячейку как живую (1) или мертвую (пусто).
  4. Копировать получившееся новое поколение с листа next вместо текущего на листы игры game.
  5. Повторять пункты 2-4 несколько раз, сменяя одно поколение другим и отображая на экране изменения в нашей «колонии».


Для начала откроем редактор Visual Basic на вкладке Разработчик (Developer). Если такой вкладки не видно, то её нужно будет сначала отобразить через Файл — Параметры — Настройка ленты (File — Options — Customize Ribbon), включив соответствующий флажок.


В открывшемся окне редактора создадим новый модуль с помощью команды меню Insert — Module, а затем скопируем и вставим туда код нашего макроса:

Sub Life()
    Dim cell As Range, n As Integer, i As Integer
    
    Set rGame = Worksheets("Game").Range("B2:AE31")
    Set rStart = Worksheets("Start").Range("B2:AE31")
    Set rNext = Worksheets("Next").Range("B2:AE31")
    Set wNext = Worksheets("Next")

    rStart.Copy Destination:=rGame
    
    For i = 1 To 50
        rNext.ClearContents
        For Each cell In rGame.Cells
            n = WorksheetFunction.CountA(cell.Offset(-1, -1).Resize(3, 3)) - cell.value
            If cell = "" And n = 3 Then wNext.Cells(cell.Row, cell.Column) = 1
            If cell = 1 And (n = 2 Or n = 3) Then wNext.Cells(cell.Row, cell.Column) = 1
            If cell = 1 And (n < 2 Or n > 3) Then wNext.Cells(cell.Row, cell.Column) = ""
        Next cell
        rNext.Copy Destination:=rGame
    Next i
End Sub


Теперь давайте разберем его построчно для понятности:


Поскольку в коде нам придется несколько раз ссылаться и много раз работать с диапазонами игрового пространства (B2:AE31) на каждом из трёх листов книги, то имеет смысл сразу оформить их как переменные. Это делается в блоке:

Set rGame = Worksheets("Game").Range("B2:AE31")
Set rStart = Worksheets("Start").Range("B2:AE31")
Set rNext = Worksheets("Next").Range("B2:AE31")


Заодно мы создаем ещё и переменную wNext, которая ссылается на весь лист next целиком — это нам тоже пригодится в будущем:

Set wNext = Worksheets("Next")


Затем, перед началом игры, мы должны перенести первое поколение с листа start на лист game. Это выполяется командой прямого копирования с использованием уже созданных переменных:

rStart.Copy Destination:=rGame


Поскольку мы хотим прокрутить в нашей игре не одно, а несколько (например, 50 для начала) поколений, то дальнейшие действия заключены в цикл:

For i = 1 to 50
...
Next i


А внутри этого цикла мы, во-первых, сначала очищаем рабочее пространство на листе next для формирования следующего поколения:

rNext.ClearContents


А, во-вторых, запускаем вложенный цикл прохода по всем ячейкам игровой вселенной на листе game, чтобы проверить каждую из них — это реализовано циклом прохода по коллекции:

For Each cell in rGame.Cells
...
Next cell


Ссылка на очередную проверяемую ячейку будет храниться в переменной cell. Для этой ячейки нам нужно сначала построить окрестность 3х3 с ней в середине. Это выполняется с помощью конструкции:

cell.Offset(-1, -1).Resize(3, 3)


Здесь метод Offset(-1,-1) виртуально сдвигает текущую проверяемую ячейку на одну строку вверх и на один столбец влево, а потом метод Resize(3,3) опять же виртуально растягивает эту одну ячейку до новых размеров 3 на 3:



Чтобы посчитать количество заполненных ячеек в полученной окрестности применяется функция рабочего листа СЧЁТЗ (COUNTA), которую в VBA можно вызвать с помощью объекта WorksheetFunction. Таким образом количество живых соседей в окружающей текущую ячейку области 3 на 3 мы получаем выражением (не забыв вычесть из полученного количества текущую ячейку):

n = WorksheetFunction.CountA(cell.Offset(-1, -1).Resize(3, 3)) - WorksheetFunction.CountA(cell)


Дальше нам нужно проверить полученное количество соседей и пометить на листе следующего поколения текущую ячейку как живую или мертвую, согласно правилам игры. Это выполняет блок из трёх проверок:

If cell = "" And n = 3 Then wNext.Cells(cell.Row, cell.Column) = 1
If cell = 1 And (n = 2 Or n = 3) Then wNext.Cells(cell.Row, cell.Column) = 1
If cell = 1 And (n < 2 Or n > 3) Then wNext.Cells(cell.Row, cell.Column) = ""


Когда цикл прохода по ячейкам будет завершен, то сформированное следующее поколение с листа next нужно скопировать на место текущего на листе game — делаем это уже знакомой конструкцией:

rNext.Copy Destination:=rGame


Вот, собственно, и вся логика.


Осталось вернуться в Excel на лист game, запустить нашу игру через вкладку Разработчик — Макросы (Developer — Macro) и насладиться процессом развития нашей колонии:

Ссылки по теме


 

Как разработать несложную игру средствами VBA Excel — Трюки и приемы в Microsoft Excel

Перейдем к следующему примеру — необходимо разработать несложную игру. На рабочем листе (рис. 1.42) следует разместить пять окон для изображений (элементы управления типа «Изображение»). При этом два окна будут основными — расположены слева и большие по размеру. Другие три окна имеют меньшие размеры и расположены в правой части рабочего листа (они будут содержать эталонные изображения). Также на рис. 1.42 расположены две кнопки и две надписи, при этом надпись Результат является просто поясняющей, и далее мы ее упоминать не будем.

Теперь смысл игры. Предварительно в три маленьких окна в правой части листа выводятся три различные картинки (условно их можно называть эталонными). При щелчке на кнопке Бросок в каждое из двух основных окон для изображений должна попадать (случайным образом) одна из трех возможных картинок (из набора эталонных, которые видны на экране). Если в результате такого случайного выбора картинки в обоих основных окнах совпадают, то в элемент управления «Надпись» для результата добавляется 3 балла, а если нет, то вычитается 1 балл.

Рис. 1.42. Интерфейс разрабатываемой игры

Нам также потребуется датчик случайных чисел — здесь мы воспользуемся уже знакомой функцией Rnd. На первом этапе необходимо дать имена объектам в соответствии с табл. 1.2. Назначение элементов достаточно очевидно. Нескольких слов заслуживает элемент «Надпись» Res для отображения результата. В ней вычисляется суммарный результат по итогам серии произведенных бросков. А по щелчку на кнопке Начать игру снова значение результата обнуляется. Таким образом, вступительная часть перед программированием завершена, и поэтому перейдем к описанию программного кода.

Для того чтобы между сеансами работы на компьютере текущий результат сохранялся, отведем для него ячейку в первой строке на листе — М1. В начале в нее необходимо записать ноль. После каждого броска в эту ячейку программно будет записываться результат. В этом случае при сохранении книги предыдущий результат сохраняется в ячейке М1. Процедура, выполняемая при открытии книги, должна извлечь из ячейки М1 предыдущий результат, и тогда пользователь будет иметь возможность продолжить игру.

В качестве первого программного фрагмента оформим процедуру, выполняемую при открытии книги, так, как представлено в листинге 1.26. Здесь в надпись для результата подставляется содержимое ячейки М1 с первого листа книги.

1
2
3
4
' Листинг 1.26. Процедура, выполняемая при открытии книги
Private Sub Workbook_Open()
Worksheets(1).Res.Caption = Worksheets(1).Range("M1").Value
End Sub

‘ Листинг 1.26. Процедура, выполняемая при открытии книги
Private Sub Workbook_Open()
Worksheets(1).Res.Caption = Worksheets(1).Range(«M1»).Value
End Sub

Таблица 1.2. Имена объектов на рис. 1.42

Свойство NameТип объектаКомментарий
Image1ИзображениеЛевое основное окно для изображения
Image2ИзображениеПравое основное окно для изображения
ImageEtalon1ИзображениеЛевое окно для образца
ImageEtalon2ИзображениеСреднее окно для образца
ImageEtalon3ИзображениеПравое окно для образца
Label1НадписьПодпись «Результат»
ResНадписьДля отображения результата
BrosokНадписьДля выполнения броска
NewGameНадписьНачать игру снова

В листинге 1.27 приведена основная процедура, выполняемая по щелчку на кнопке с надписью Бросок.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
' Листинг 1.27. Обработка щелчка на кнопке Бросок
Private Sub Brosok_Click()
Symma = Range("M1")
Randomize
' Формирование случайных чисел
a = CInt(Rnd * 3 + 0.5)
b = CInt(Rnd * 3 + 0.5)
' Отображение картинки в первом окне
If a = 1 Then
	Image1.Picture = ImageEtalon1.Picture
ElseIf a = 2 Then
	Image1.Picture = ImageEtalon2.Picture
Else
	Image1.Picture = ImageEtalon3.Picture
End If
' Отображение картинки во втором окне
If b = 1 Then
	Image2.Picture = ImageEtalon1.Picture
ElseIf b = 2 Then
	Image2.Picture = ImageEtalon2.Picture
Else
	Image2.Picture = ImageEtalon3.Picture
End If
' Формирование результата
If a = b Then
	Symma = Symma + 3
Else
	Symma = Symma - 1
End If
' Фиксирование результата в надписи и в ячейке на листе
Res.Caption = Symma
Range("M1").Value = Symma
End Sub

‘ Листинг 1.27. Обработка щелчка на кнопке Бросок
Private Sub Brosok_Click()
Symma = Range(«M1»)
Randomize
‘ Формирование случайных чисел
a = CInt(Rnd * 3 + 0.5)
b = CInt(Rnd * 3 + 0.5)
‘ Отображение картинки в первом окне
If a = 1 Then
Image1.Picture = ImageEtalon1.Picture
ElseIf a = 2 Then
Image1.Picture = ImageEtalon2.Picture
Else
Image1.Picture = ImageEtalon3.Picture
End If
‘ Отображение картинки во втором окне
If b = 1 Then
Image2.Picture = ImageEtalon1.Picture
ElseIf b = 2 Then
Image2.Picture = ImageEtalon2.Picture
Else
Image2.Picture = ImageEtalon3.Picture
End If
‘ Формирование результата
If a = b Then
Symma = Symma + 3
Else
Symma = Symma — 1
End If
‘ Фиксирование результата в надписи и в ячейке на листе
Res.Caption = Symma
Range(«M1»).Value = Symma
End Sub

В тексте процедуры используется функция Rnd, которая нам уже встречалась. Преобразование CInt (Rnd * 3 + 0.5) позволяет сформировать случайное целое число, которое может принимать одно из трех возможных значений: 1, 2 или 3. Таким образом, можно значения переменных а и b сопоставить с номерами картинок. В результате при совпадении картинок мы увеличиваем сумму выигрыша на 3 балла, а при несовпадении, соответственно, уменьшаем на один.

Если не предпринимать каких-либо действий, то функция Rnd при каждом повторном открытии книги выдает одну и ту же последовательность случайных чисел. Чтобы устранить данный недостаток, мы воспользовались функцией Randomize, которая выполняет перемешивание случайных чисел. В результате при различных сеансах работы последовательность, выдаваемая по нажатию кнопки Бросок, каждый раз будет разная.

Другая кнопка на листе (NewGame) позволяет сбросить содержимое ячейки М1 и значение свойства Caption элемента Res в ноль для начала новой игры (листинг 1.28).

1
2
3
4
5
6
' Листинг 1.28. Процедура сброса суммы баллов в ноль
Private Sub NewGame_Click()
Symma = О
Res.Caption = Symma
Range("M1") = Symma
End Sub

‘ Листинг 1.28. Процедура сброса суммы баллов в ноль
Private Sub NewGame_Click()
Symma = О
Res.Caption = Symma
Range(«M1») = Symma
End Sub

Один из вариантов развития игры показан на рис. 1.43.

Рис. 1.43. Один из сценариев развития игры

Как в Excel поиграть в компьютерные игры — MS Excel

Excel — мощная программа, в которой можно создавать другие программы, поменьше. Даже отдельные функции являют собой, по сути дела, особые программки. Не все они служат скучным целям. Игр, написанных специально для Excel, довольно много. Возможно, игры и не исчезли, а просто их упрятали поглубже. Если вам известно, как запустить в Microsoft Office какую-нибудь игрушку, напишите мне, пожалуйста. Иногда в творческом процессе так хочется кого-нибудь пристрелить или где-нибудь полетать…

Игры inside

В версиях Excel 95-2000 игрушки, придуманные авторами программы, «спрятаны». Например, в Excel 95 нужно проделать следующие шаманские действия.

  1. Создать новую книгу.
  2. Выделить строку gод номером 95.
  3. Нажать клавишу табуляции.
  4. Открыть меню Справка ► 0 программе.
  5. Удерживая одновременно клавиши Ctr, Alt и Shift, щелкнуть на пункте Техническая поддержка.

И запускается «стрелялка», напоминающая комбатс и светлой памяти Doom, только попроще!

В Excel 97 действия для вызова игры такие.

  1. Выполнить команду Сервис ► Параметры и в открывшемся окне на вкладке Общие снять флажок Стиль ссылок R1C1.
  2. Создать таблицу.
  3. Нажать F5 и ввести в появившемся окне кабалистическую надпись Х97:_97.
  4. Нажать Enter.
  5. Выделить строку с номером 97.
  6. Нажать клавишу табуляции, а затем, удерживая Shift и Ctrl, щелкнуть на значке Мастера диаграмм и подождать, пока открывающееся окно не заполнит весь экран.

В результате вы сможете оценить достоинства авиасимулятора, придуманного и разработанного программистами Microsoft.

В Excel 2000 процедура запуска игры усложнена. Нужно выполнить такие действия.

  1. Создать новую книгу.
  2. Сохранить ее в формате веб-страницы (Сохранить как Web-страницу), установив флажки выделенное: Лист и Добавить интерактивность.
  3. Открыть созданную страницу в Internet Explorer версии не ниже 5.0.
  4. Выделить строку 2000.
  5. Клавишей табуляции перевести выделение на ячейку WC 2000.
  6. Одновременно нажать клавиши Ctrl, Alt и Shift, расположенные на клавиатуре слева, и щелкнуть в левом верхнем углу внедренного в веб-страницу листа Excel на эмблеме Office.

После этого у вас появляется возможность погонять по виртуальной трассе виртуальные же машинки.

После 2000 года руководство компании Microsoft, видимо, узнало, чем занимаются программисты вместо того, чтобы улучшать интерфейс и повышать надежность программных продуктов. Или еще что-то случилось. Во всяком случае, начиная с Office ХР «встроенные» игры из Excel исчезли. А заодно и из Word, где была, например, неплохая вариация на тему игры Pinball.

Игры-макросы

В Excel (и вообще в любой программе Microsoft Office) есть возможность написать мини-приложение на языке программирования VBA (Visual Basic for Applications). Обычно на нем пишут какие-нибудь полезные вещи — сложные расчеты, поиск объектов по определенному признаку, хитрое форматирование данных. Но никто не запрещает и игру написать.

А хоть бы и запрещали! В Интернете полно игр, написанных для Excel. Не буду даже советовать конкретные сайты. Достаточно зайти на поисковый сервер (например, http://www.google.com или http://www.yandex.ru) и в строке поиска написать Excel игра или, если хотя бы чуть-чуть читаете по-английски, Excel game. Увидите множество ресурсов, где есть подходящие игрушки. Правда, для их запуска нужно немного изменить настройки программы.

Давайте я вам расскажу, как установить какую-нибудь игру, а заодно и передохну на совершенно законном основании. Для тестирования я выбрал старый добрый «Тетрис». Ностальгия, знаете ли, замучила: молодость, лаборатория нелинейной спектроскопии, поляризация лазера на красителях, расчет эксперимента на ЭВМ «Мазовия», а в перерывах… М-да… Молодость ушла, а «Тетрис» жив и постоянно появляется в самых неожиданных формах: например в виде игрушки для Excel. Файл игры я скачал с одного популярного интернет-портала. Это обычный документ Excel под названием Tetris.xls. Открыл его… и туг же обнаружил многозначительное предупреждение.

Ни в коем случае не разрешайте выполнение неизвестных макросов, если не уверены в их безвредности! Я бы ни за что не стал этого делать, но надо же вас научить играть в «Тетрис»!

Это очень важное предупреждение. Давайте с ним разберемся, прежде чем пойти дальше. Как я уже писал, игры — это мини-программы (макросы), написанные на языке VBA. Это не очень «навороченный* язык, по всякого рода вредители навострились писать вирусы и на нем.

Поэтому в Excel 2007-2013 по умолчанию выполнение всех макросов запрещено. Как известно, воздержание — единственный надежный метод предохранения. Поэтому, увидев такое предупреждение в незнакомом файле, который вы получили неизвестно от кого, лучше сразу закройте его и займитесь чем-нибудь другим. В данном случае я трижды плюнул через левое плечо, помолился лицензионному антивирусу, который стережет мой компьютер, и не стал закрывать файл. Более того, я нажал кнопку Параметры и увидел окно настроек.

Тут я еще раз поплевал через плечо и установил переключатель в положение Включить это содержимое. И нажал ОК. С этой секунды все макросы, записанные в файле Tetris.xls, перешли в активное состояние. При внимательном рассмотрении файл с игрой «Тетрис» оказался очень простым. Кроме данных об авторе, на листе оказались две кнопки — Запуск и Выход, а также список уровней сложности, от первого до пятого. Я, естественно, начал с самого сложного, пятого, и погрузился в игру.

Выяснилось, что руки до сих пор помнят клавиши управления игрой: на цифровой клавиатуре стрелки ← и → сдвигают фигуру соответственно влево и вправо; стрелка ↑ поворачивает фигуру вокруг своей оси; стрелка ↓ ускоряет движение вниз. Мышечная память оказалась очень кстати, потому что в самом файле об управлении игрой — ни слова.

Пишем игры на… VBA (Pt. 1) — Gamedev на DTF

Вступление

Все мы знакомы с Excel. Вот и я, душный банковский служащий, что-то да слышал об этом инструменте.

Одни люди умеют лишь форматировать ячейки, другие создают клоны Doom, используя встроенный в Microsoft Office язык программирования.

Я не претендую на второй тип, но и к первым себя не отношу. Для меня Visual Basic for Applications, или VBA, стал тем первым ЯП, который заинтересовал и позволил уверовать в свои силы. Путешествие в этот интересный мир началось с автоматической записи макросов и разбора созданного программой кода.

Как начинающему программисту-самоучке, мне приходилось активно шерстить интернет в поисках решения возникающих проблем. Огромное коммьюнити, большое количество тематических сайтов и, на крайний случай, справка Microsoft помогали в решении практически любой проблемы.

Однако наступил такой момент, когда все рабочие задачи оказались решены и автоматизированы, а внутреннему программисту (ха-ха) все ещё хотелось чего-то большего.

Эта серия статей не была задумана как обучающая (ведь я сам ещё учусь), но если что-нибудь изложенное будет полезно начинающим программистам, которые только погружаются в мир Visual Basic, то считайте, что я пополнил интернет одной полезной ссылкой.

Вторая цель создания цикла заключается в самообразовании и развитии навыков. Я буду ставить себе определенную цель, а потом исполнять ее наиболее приближенной к задумке.

К тому же где, как не в комментариях, мне доходчиво и культурным языком укажут на допущенные ошибки?

Я постараюсь объяснять все подробно, но без углубления в простейшие истины. Не буду рассказывать, что такое переменные, циклы или массивы. Всю эту информацию, изложенную доступным языком, можно найти в интернете.

В этих статьях я буду описывать процесс создания игр в Excel, начиная с простейших пятнашек и заканчивая глобальной RPG. Это позволит мне больше углубиться в тему, а вам поглумиться над неумехой-программистом. Или, в лучшем случае, забрать готовое решение на работу и скрывать безделье за мнимой подготовкой отчета. Ссылки на все исходные материалы будут в свободном доступе.

Темы первых статей цикла уже определены. В этой статье я расскажу, как сделать пятнашки в Excel. В следующий раз разберу создание игры в стиле Toon Blast.

Если вам, к моему удивлению, будет интересен такой формат, то пишите в комментариях, какого типа игры вы бы хотели, чтобы я реализовал на базе Excel.

Итак, хватит грофомании! ПЯТНАШКИ.

Первым делом…

Необходимо определиться с игровым полем. В данном случае все просто. Что есть пятнашки? Диапазон размером 4 на 4 ячейки, что в сумме даёт 16 ячеек. Переименовываем первый лист (по желанию), приводим нужные ячейки к квадратной форме и декорируем, как душе угодно. Получается примерно следующее:

Формирование игрового поля

На этом этапе необходимо в случайном порядке расположить числа от 1 до 15, а также пустое поле на выбранном диапазоне. Для этого открываем окно редактирования кода (Alt + F11), добавляем простой модуль (при желании и его можно переименовать для красоты).

Создаем публичную переменную rngPlayField, которая будет хранить координаты нашего игрового поля, и в методе initializeField() пишем следующий код:

Public rngPlayField As Range

Sub initializeField()

Dim collNumbers As New Collection, countNumbers As Byte, rndNumber As Byte, fndCells As Range

Set rngPlayField = Sheets(«MAIN»).Range(«B2:E5») ‘игровой диапазон

For countNumbers = 1 To 16 ‘формируем коллекцию чисел

collNumbers.Add countNumbers

Next

For Each fndCells In rngPlayField.Cells ‘цикл для каждого элемента на игровом поле

rndNumber = Application.WorksheetFunction.RandBetween(1, collN

Создание пятнашек в Excel

Игровое поле пятнашек состоит по сути из 16 фишек, можно также добавить кнопкой перемешать (начать с начала) и отображением количества шагов. В качестве фишек мы будем использовать обычные кнопки CommandButton — 16 штук. 

Расположим их в виде поля 4×4. Уберем стандартное название кнопок (а свойство Caption) сделаем их квадратными в форме фишек. Вообще тут можно дать волю фантазии наложить тени, выбрать цвет и так далее, углубляться не будем. На игровое поле мы добавили также кнопку перемешать. Она будет служить для сброса и начала новой игры. 

Добавили текстовые поля Label, в которые будем записывать количество потраченных шагов и лучший счет.  Что получилось видно на картинке.

Еще один момент, чтобы кнопки не «нажимались» (т.е., чтобы по клику не происходила анимация нажатия на кнопку), установим свойство Locked в положение True.

Механика игры

Управление перемещением фишек будем реализовывать путем нажатия на стрелки вверх, вниз, влево и вправо. При нажатии на стрелки будем менять текст кнопок (свойство Caption) в зависимости от направления. С анимацией не будем мудрить, сами фишки не будем перемещать, будем просто мгновенно менять текст фишки с одного на другой, визуально будет казаться, что фишка переместилась по полю.

Старт игры

Инициализация формы вызываем процедуру создания поля.


Private Sub UserForm_Initialize()
    Me.Caption = "П Я Т Н А Ш К И"
    Call Peremeshat
End Sub

Случайным образом заполняем игровое поле и проверяем комбинацию на решаемость. Подробно проверку на решаемость описывать не будем, так как не в этом цель. Изучить этот вопрос можно на сайте http://pyatnashki.wmsite.ru/kombinacyi.


Sub Peremeshat()
 
    Dim a&(), i&, Max&
    Dim j As Integer, Num As Integer
    Dim e As Double         'вычисляет номер ряда пустой клетки
    Dim isE As Boolean      'проверка на четность
    Dim mySum As Integer    'сумма количества нужных элементов
 
    'Сбрасываем количество ходов
    stepC = 0
    Me.lbl_stepC.Caption = stepC
 
 
    Randomize ' Включаем генератор случайных чисел
 
NewGame:
    ' Создаем игровое поле
    ReDim a(1 To 16)
    For i = 1 To 16
        Do
            Num = Int(Rnd * 16) + 1
        Loop While IsNumeric(Application.Match(Num, a, 0))
        a(i) = Num
        If a(i) = 16 Then
            Me.Controls("CommandButton" & i).Caption = ""
            Me.Controls("CommandButton" & i).BackColor = &HA0ADBB
        Else
            Me.Controls("CommandButton" & i).Caption = a(i)
            Me.Controls("CommandButton" & i).BackColor = &H8000000F
        End If
    Next
 
    'Проверяем на решаемость
    On Error Resume Next
    mySum = 0
    For i = 1 To 15
        If Me.Controls("CommandButton" & i).Caption = "" Then
            e = (i + 3) / 4
        End If
        For j = i To 15
            If val(Me.Controls("CommandButton" & i).Caption) > val(Me.Controls("CommandButton" & j + 1).Caption) And val(Me.Controls("CommandButton" & j + 1).Caption) > 0 Then
                mySum = mySum + 1
            End If
        Next j
    Next i
    mySum = mySum + Int(e)
    isE = IsEven(mySum)    'проверяем на четность(решаемость)
    If isE = False Then GoTo NewGame    'меняем комбинацию если что
End Sub

Функция проверки заряженного числа на четность


Function IsEven(Num As Integer) As Boolean
    IsEven = Fix(Num / 2) = Num / 2
End Function

Движение фишек

Создадим процедуры, которые будут перемещать наши фишки. Ниже приведена одна из них, остальные аналогичные, можете найти их в файле.


Sub ToUp()
    Dim i As Integer
    For i = 12 To 1 Step -1
        If Me.Controls("CommandButton" & i).Caption = "" Then
            ' Меняем значение фишек
            Me.Controls("CommandButton" & i).Caption = Me.Controls("CommandButton" & i + 4).Caption
            Me.Controls("CommandButton" & i + 4).Caption = ""
            ' меняем цвет фишек
            Me.Controls("CommandButton" & i).BackColor = &H8000000F
            Me.Controls("CommandButton" & i + 4).BackColor = &HA0ADBB
            stepC = stepC + 1 ' Увеличиваем количество ходов
            Me.lbl_stepC.Caption = stepC
        End If
    Next i
    Call Proverka
End Sub

В конце делаем проверку поля и проверяем правильно ли игрок расставил фишки.


Sub Proverka()    'Проверка выигрыша
    Dim i As Byte, j As Byte
    For i = 1 To 15
        If val(Me.Controls("CommandButton" & i).Caption) = i Then
            j = j + 1
        End If
    Next i
    If j < 15 Then Exit Sub    ' не выиграли

    Beep
    If MsgBox("Начать новую игру?", vbYesNo, "П О Б Е Д А !") = vbYes Then    'даем варианты
        Call Peremeshat
        Me.lbl_best.ForeColor = &HEFF8FA
    Else
        Unload Me
    End If
End Sub

Осталось «отловить» нажатие стрелок на клавиатуре и запускать нужное движение. Для этого воспользуемся событием формы UserForm_KeyDown.


Private Sub UserForm_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode.Value = 40 Then ToDown
    If KeyCode.Value = 38 Then ToUp
    If KeyCode.Value = 37 Then ToLeft
    If KeyCode.Value = 39 Then ToRight
End Sub

3D-движок, написанный на формулах MS Excel / Хабр

Скриншот экрана игры

Эта статья посвящена тому, как я смог написать 3D-движок только на формулах Excel. Я реализовал следующий функционал:

  • бесконечная процедурно генерируемая карта лабиринта
  • рендеринг трассировкой лучей в реальном времени
  • вычисление окклюзии
  • рендеринг простейшего освещения
  • шейдер освещения и вычислений
  • движок естественного движения
  • в 3D-движке не используются макросы

* чтобы управлять игрой нажатием клавиш, нужны макросы, управляющие движением с помощью одной простой инструкции копирования.

Можете скачать файл и протестировать его самостоятельно!

Файлы

Учитель информатики однажды сказал нам: «любые вычисления можно выполнить в любом языке программирования, даже через формулы электронной таблицы».

Поначалу, какой бы мудрой ни казалась эта фраза, упоминание в этом списке Excel выглядело глупо…

Затем, после изучения машины Тьюринга, фраза стала для нас полностью верной, хотя и не вполне реализуемой.

Получив многолетний опыт работы с Excel, мы уже поняли, что единственное ограничение формулы Excel — недостаток способов ввода-вывода.

Но множество задач, решаемых исключительно формулами, по-прежнему выглядит впечатляюще.

Как бы то ни было, эта работа — не просто какое-то хвастовство… У меня были для неё серьёзные причины.

Электронные таблицы — это мощный инструмент, которому должен научиться каждый, ведь его можно использовать почти в любых деловых задачах.

Однако когда большинство людей доходят до решения более сложных задач, они стремятся использовать язык VBA, даже не понимая толком, зачем.

А начав изучать его, они пытаются использовать его для решения любых видов задач, даже для простого поиска или визуализации.

Сегодня я преподаю Excel, поэтому постараюсь объяснить людям, почему написание макроса на VBA для решения любой задачи без хорошего знания программирования — это не только пустая трата времени, но и серьёзный риск снижения качества электронной таблицы.

При использовании в бизнесе формулы обладают следующими преимуществами перед макросами:

  • Их быстрее писать для любого человека, если он не профессиональный программист-аналитик
  • Их проще поддерживать любому человеку, а не только профессиональному программисту. (Чаще всего макросы становятся бесполезны после ухода их разработчика.)
  • Гарантированное качество благодаря постоянной проверке значений. (Принудительное применение техники «разработка через тестирование»)
  • Они более эффективны в долговременной перспективе благодаря процессу создания формул в стиле «думай, прежде чем писать».
  • И они совершенно точно гораздо лучше интегрированы в сам инструмент создания электронных таблиц и следуют изначальному паттерну разработки электронных таблиц, в то время как макросы часто оказываются специфическими конструкциями, требующими в дальнейшем активной поддержки.

Примечание: эти пункты в основном относятся к процедурам, используемым как макросы; дополнительная функция, написанная на VBA, может увеличить эффективность, не снижая качества.

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

Если конкретнее, то я нашёл всего два случая, когда потребовался VBA:

  • Добавление специфического ввода или вывода (как я сделал здесь для получения событий клавиш), потому что формула всегда ограничена изменениями в самой ячейке
  • Некоторые сложные задачи (например, оптимизация), в которых вычисления занимают слишком много времени и/или пространства. Но такие задачи довольно редки в реальной жизни.

В оставшейся части этой статьи я расскажу как работают электронные таблицы в различных аспектах игры.
Моя электронная таблица должна была стать игрой в стиле Doom в лабиринте.

Можно было создать для неё постоянную, построенную вручную карту, возможно, зацикленную по краям, но она бы потребовала дополнительного места, поисков и изначальной разработки дизайна.

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

Для создания случайно генерируемой карты нам нужно быть последовательными, поэтому функцию rand() использовать нельзя, ведь мы не можем контролировать начальное состояние (seed) генератора случайных чисел.

Начальные состояния генератора случайных чисел должны быть позициями (x;y) на карте, чтобы мы могли получать разные значения для каждой позиции, и мы не можем получить результат предыдущего случайного числа как начальное состояние для следующего, или нам придётся хранить всю карту с самого начала.

Обычные хэш-функции, несмотря на обеспечение высокого качества случайных чисел, оказались слишком затратными, поэтому мне нужно было найти другое решение.

Эксперименты с фрактальным генератором тоже оказались довольно затратными и давали интересные результаты только для небольшой части карты.

Тогда я обнаружил метод средних квадратов (middle-square method), который на самом деле не очень «случаен», потому что в нём используются последовательные начальные состояния. Но он подсказал мне идею того, что можно брать десятичную часть любого другого вычисления.

Я выяснил, что если брать десятичные части sin(x)+cos(y), то наконец-то получаются красивые числа без какого-либо прослеживаемого паттерна, а время вычислений при этом на удивление малО.

Для получения десятичных частей математические функции mod() и floor() гораздо более эффективны по сравнению с текстовой функцией подстроки mid().

Я стремился сделать карту похожей на крысиный лабиринт, поэтому создавал блоки не сплошными, чтобы они походили не на пещеры (в стиле Minecraft), а на лабиринт.

То есть нам нужны тонкие стены с двумя возможными стенами для каждого квадрата. Тогда мы сможем брать два блока чисел вместе с тем же случайным значением.

Плотностью размещения стен управляют два параметра.

С учётом этих правил мы можем или отображать лабиринт, или тестировать любую стену с заданной позицией с помощью трассировки лучей.

Стоит заметить, что карта «плоская», без подъёмов и спусков. Можно было добавить рельеф с помощью генератора рельефа (подошёл бы алгоритм Diamond-Square, потому что его можно написать без рекурсивной функции), но весь последующий процесс сильно облегчило бы вырезание отверстий в полу и потолке с дополнительным значением уровня.

Так, похоже, мы в аду
Трассировщик лучей должен определять для каждого пикселя экрана, какой первой поверхности касается луч, и получать от неё информацию (расстояние, угол падения света, цвет и т.д.).

Кроме того, трассировщику лучей требуется дополнительный луч, распространяющийся из этой точки (отражения, прозрачность), что напрямую увеличивает вычислительные затраты.

Окклюзия

Первым сложным моментом будет нахождение первого объекта на пути каждого луча.

Поскольку лабиринт на самом деле плоский с горизонтальными стенами, то ближайшая найденная стена будет одинаковой для всех пикселей одного столбца.

То есть процесс можно упростить до горизонтального «радара» в одном измерении.

Тогда у нас нет иного выбора, кроме как проверять луч на первой вероятной стене, потом на второй вероятной, и так далее, пока мы не найдём нужную.

Определение того, какую стену нужно проверять — это всего лишь тригонометрическая задача.

И поскольку у нас всего два типа стен, мы можем тестировать оба типа, а потом сохранять только ближайшую.

Одно из ограничений Excel заключается в отсутствии условного цикла и для экономии времени можно только пропускать тело цикла. Поэтому нам нужно ограничить максимальное расстояние проверки, считая, что если на этом расстоянии стена не найдена, то её нет.

Пол и потолок

Чтобы определить потолок и пол, нам достаточно определить, где заканчивается стена.

Отдельный лист изменяет расстояние до пола или потолка в зависимости от вертикального угла.

Затем для каждого пикселя мы определяем, дальше ли стена, чем потолок или пол, и соответствующим образом задаём цвет пикселя.

Эффективное сравнение реализовано использованием только проекции расстояния до стены и до пола/потолка по оси камеры. Конечное расстояние затем получается с помощью предварительно вычисленного коэффициента расстояния в шейдере расстояний. Постоянные предварительно вычисленные значения нужны для экономии ресурсов.

Освещение

Конечное освещение берётся из шейдера освещения, представляющего собой свет факела, в направлении камеры (и оружия).

Когда поверхность точно горизонтальна к лучу света, также добавляется отражение.

Стена может быть только горизонтальной (если добавить наклон, то он просто смещает окно экрана вверх и вниз, не поворачивая камеру)

Для каждого угла радара мы получаем угол между лучом и ближайшей найденной стеной.

Коэффициент отражения — это просто функция угла.

В конце концов освещение становится результатом функции коэффициента расстояния, потолка/пола или разрешения стен, коэффициента отражения и коэффициента шейдера освещения.

Экран дисплея

Эффективный дисплей реализуется с помощью условного форматирования — градиент цвета зависит от значения ячейки.

Сокрытие значения выполняется форматированием ячейки.

Игрок не должен проходить сквозь стены, иначе это разрушит весь смысл лабиринта.

Кроме того, игрок не должен прилипать к стене при контакте с ней. Он должен двигаться, скользя вдоль стены, пока не попадёт в угол.

Также необходимо соблюдать минимальное расстояние между стеной и игроком, чтобы избежать графических проблем и придать стенам толщину.

Оказалось, что довольно сложно обработать все возможные варианты стены и позиций игрока относительно этой стены.

Изучено 25 вариантов и к ним привязано три возможных исхода (для каждой оси смещения), чтобы получать результаты за как можно меньшее количество проверок.

Несмотря на то, что это казалось самой короткой частью игры, таблица смещений стала самой сложной в реализации. (В 10 раз больше, чем карта, в два раза больше кода распознавания стен.)

Привет, красное привидение!

Графический рендеринг

Сложность с врагами заключалась в том, чтобы получить форму, которую легко можно располагать перед стеной, легко рендерить на любом расстоянии, и которая будет интереснее, чем простой куб.

Целый отдельный лист посвящён вычислению формы сфер с учётом горизонтального радиуса и вертикальной высоты овоида. Для анимирования существа используется соотношение высоты/ширины.

В рендеринге стен и потолка используется градиент только по одному цвету, однако Excel позволяет использовать два последовательных (не сливающихся) градиента. Поэтому врагов можно отображать другим цветом. Для этого градиента можно использовать диапазон значений ниже 0, при том, что значение 0 — это чёрный цвет.

Меняющуюся прозрачность реализовать оказалось не сложнее, чем плавный рендеринг поверхности сферы. Луч получает толщину сферы, делая пиксель более цветным.

На границе сферы низкая толщина сохраняет только значение цвета по умолчанию стены за ней с отрицательным коэффициентом для превращения его в цвет монстра. Фильтр цвета освещения обеспечивает прозрачность на границе сферы.

Здесь вычисления тоже производятся в горизонтальной плоскости, а максимальный объём вычислений подготавливается перед завершением 3D-вычислений для каждого пикселя.

Поведение врагов

Чтобы избежать реализации сложного и некачественного процедурного поведения, враги не будут реагировать на действия игрока. Их позиция определяется только временем, они движутся по сложной траектории, чтобы паттерн был не таким заметным.

Чтобы позиция, скорость и ускорение были непрерывными (для плавного движения), я сделал траекторию своего рода конечным фракталом большого круга с добавленными к нему небольшими круговыми вариациями. Коэффициент соотношения между кругами (и даже соотношение x/y) случаен и ненатурален, поэтому траектория никогда не самозацикливается. Чтобы получить хороший случайный генератор детерминированных траекторий, я создал отдельный лист, отображающий траекторию.

Так как траектории не могут учитывать стены, я был вынужден оставить монстрам возможность проходить сквозь них.

В каждый момент времени вычисляется несколько траекторий. Весь лабиринт населён одними и теми же десятью врагами, расположенными в сетке на значительном расстоянии, чтобы игрок не мог увидеть двух одинаковых монстров одновременно.

Можно уменьшать/увеличивать сетку повторов, чтобы повышать/снижать плотность расположения врагов. При этом следует внимательно следить за конечным смещением монстра, чтобы оно не было чрезмерным, и за скоростью, изменяющейся при масштабировании.

Создав ограниченное количество управляемых врагов, можно скопировать их по всему лабиринту.

Атаки врагов

Анимация врагов сделана с помощью соотношений их радиуса/высоты. Так как атака врага должна быть чётко заметна, но в то же время достаточно медленной, чтобы игрок смог отреагировать, враги просто увеличиваются в радиусе, когда замечают игрока. Рост соответствует экспоненциальной функции, симулирующей взрыв.

Область видимости каждого монстра вычисляется на вкладке радара с учётом расположения стен.

Игрок получает урон, когда он оказывается внутри радиуса врага. Если игрок специально забирается внутрь врага, происходит то же самое.

Это создаёт эффект наносимого игроку урона — простой эффект негативного цвета во весь экран.

Добавлен также ещё один эффект — отмена рендеринга всех остальных врагов при нанесении урона игроку.

Жизнь игрока указана как один из элементов его статуса, который обрабатывается поэтапно, как и его положение.

Атаки игрока

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

Эта упрощённая модель позволяет игроку предотвратить атаку врага, снизив его жизнь до нуля.

Чтобы увеличить сложность, добавлена сложность прицеливания в маленьких врагов, которые остаются на дальнем расстоянии, а боеприпас через какое-то время требует перезарядки.

При убийстве враг просто переходит в состояние бездействия и медленной регенерации. Так как по всей карте повторяется несколько врагов, ни одного из них нельзя уничтожать полностью.

Смерть и перезапуск

Когда жизнь игрока снижается до нуля, бОльшая часть его действий приостанавливается и появляется экран конца игры.

Этот экран рендерится с помощью ещё одного шейдера освещения. К цвету применён эффект негатива, чтобы подчеркнуть нанесение урона.

Постепенное отображение сообщения «game over» реализовано с помощью небольшого коэффициента, увеличивающегося как степенная функция. Это позволяет будущим пикселям оставаться скрытыми до их появления, когда степень становится достаточно большой.

Сдвигание вниз — это простое смещение шейдера освещения, в который добавлены другие сообщения, например, рекорды (high score) и перезапуск игры.

Очки должны отрисовываться с помощью пикселей шрифтом очень низкого разрешения.

При перезапуске генерируется новый начальный параметр, а сам игрок отправляется в другую точку, чтобы не встретиться с теми же врагами.

200+ бесплатных игр Microsoft Excel

В этом посте есть несколько из лучших игр Microsoft Excel , которые вы можете скачать бесплатно и играть прямо сейчас.

Все, что вам нужно, это установить на вашем компьютере Microsoft Excel, чтобы играть в эти игры. Возможна несовместимость с некоторыми из этих игр.

Этот пост носит исключительно информационный характер. Не отвлекайтесь и используйте их во время работы.

Просмотрите публикацию полностью, потому что здесь можно бесплатно загрузить более 100 игр Excel.

1) 2048 игра в Excel

Загрузить с: SpreadSheet1

2048 — популярная игра-головоломка со скользящими блоками. Вы должны двигать пронумерованные плитки, чтобы создать плитку с номером 2048. Это весело, когда это скучно!

2) 50+ игр Excel (загрузка по одной ссылке)

Особая благодарность Анкит Каул из ExcelTrick.com.

Загрузка отдельных игр из ExcelTrick

ИЛИ

Если вы хотите загрузить все 50+ игр сразу , нажмите здесь:

SkyDrive

Вы можете найти такие классные игры, как:

  1. 2D Knockout
  2. 3D tic tac toe xl2k
  3. AdrenalineChallenge
  4. Air Fighting
  5. Angry Birds excel
  6. Angry Birds Rio
  7. Apple Shooter
  8. Ball Challenge
  9. Bang Bang # 2
  10. Baseball Excel
  11. Batman
  12. bloxorz
  13. Bmx-Tricks
  14. Bow Man
  15. Bowling
  16. Chaser
  17. Chopper Challenge
  18. Crab Ball
  19. Cricket
  20. Defend Your Castle
  21. Down Hill Stunts
  22. Drunk-Driving
  23. easy-chess
  24. Famous Eyes
  25. Fishy
  26. лягушачий прыжок
  27. GOLF
  28. полет хомяка
  29. Hulk Smash Up
  30. Knife-Throw
  31. игра-викторина с логотипами
  32. Minesweeper
  33. Mini Pool
  34. Monopoly
  35. mortal kombat PACMAN
  36. Парковка
  37. Prince of Persia Excel
  38. 900 41 Рикошет убивает 2

  39. Американские горки
  40. Search Doll
  41. snake
  42. SONIC
  43. найдите разницу
  44. Square
  45. Super Mario world excel
  46. Superman-Game
  47. Tetris
  48. Throw paper
  49. TOM n JERRY

3) 28 игр Excel

А вот еще один список игр Excel, которые помогут вам убить время.Вы можете скачать игры в формате Excel прямо на сайте.

Загрузите отсюда: Разблокированные игры Excel

  1. Adrenaline Challenge
  2. стрельба по яблокам
  3. Badger Racing
  4. Bang Bang 2
  5. BirdFlu
  6. connect 4
  7. Cursor Race
  8. Curve Ball
  9. Donkey Kong
  10. Hangman
  11. Hulk Smash Up
  12. Jurassic Pinball
  13. Magic8Ball
  14. Mario
  15. Monopoly
  16. My pong
  17. Pacman
  18. Raft Wars
  19. sonic
  20. Super Mario Revived
  21. Танки
  22. теннис
  23. Tetris
  24. The Idiot Test 1
  25. The Impossible Quiz (Lite версия )
  26. Невозможная викторина
  27. xlmaze
  28. зодиак и забавные факты

4) Vertex42

Посетите : Vertex42

Vertex42.com есть Spirograph, Mine Blaster 1000, и у них есть ссылки на многие другие сайты, где вы можете найти игры Excel для бесплатной загрузки.

5) ClickonF5

Посетите : ClickonF5

ClickonF5 имеет 16 игр Micosoft Excel, в которые можно играть в электронных таблицах.

Некоторые из игр, которые вы можете загрузить: Ball Escape, Bricks 10, Crazy Ball, Twist, The Package, Water Share, Tennis Game, Easy Chess, Link Five, Brainvita, Shooting, Sonic, Insect Collector, Finger Footy, Counting Stars , и Парковка.

6) Учебное пособие по Excel в Интернете

Посетите : Учебное пособие по Excel в Интернете

На этом сайте есть Candy Number Crush Saga, Monopoly, Frog Leap, 3D Maze, Sudoku, Knockout, Logo Quiz, Pacman и многое другое.

7) Симулятор полета в Microsoft Excel 97

Благодарность: База знаний Университета Индианы

Откройте Microsoft Excel 97 .
Откройте новую книгу.
Нажмите F5.
Введите L97: X97
Нажмите Enter.
Нажмите Tab один раз.
Удерживая Ctrl-Shift, щелкните значок мастера диаграмм на панели инструментов.
Для выхода нажмите Esc.

8) 100 Square Football Pool Excel

Скачать 19+ Football Pool Grid: Football Pool Template

9) Монополия в Excel

Загрузите отсюда: Монополия в Excel

10) Dev Hunter — Excel скрытая игра

Благодарность: Dev Hunter — Caltech University

  • Как играть:
    Перейдите к таблице Excel внизу этой страницы.
    Страница вниз или прокрутите вниз, пока не найдете строку 2000.
    Найдите колонку WC.
    Щелкните ячейку (2000, туалет).
    Выделите всю строку, нажав ПРОБЕЛ-SHIFT.
    Удерживая CTRL-ALT-SHIFT, щелкните левой кнопкой мыши логотип Office в верхнем левом углу изображения Excel.
    Запустится полноэкранная игра Dev Hunter .
  • Органы управления : Стрелка вверх: ускорение
    Стрелка вниз: замедление
    Стрелки влево / вправо: маневр влево или вправо
    O: выпуск масляного пятна
    ПРОСТРАНСТВО: огнестрельные пулеметы
    H: включить или выключить фары
    ESC: выйти из игры

11) Трехмерный лабиринт в Excel

Загрузить из 3D Maze в Excel

12) Арена XLSM

Скачать с Arena XLSM

13) Сапер в Excel

Загрузить из Excel Minesweeper

14) 53 игры Microsoft Excel

Загрузите это из 53 игр Excel

  1. 3D Viewer
  2. AC / DC Music Video
  3. Baseball 2010
  4. Battleship
  5. Bejeweled
  6. Berulex
  7. Blackjack
  8. Boulderdash
  9. Breakout
  10. BubbleCell
  11. Checkers
  12. Chess
  13. Complex Concentration
  14. Complex Concentration
  15. Complex Concentration
  16. Connect 4
  17. Deal or No Deal
  18. Dog Race
  19. Forty’s Rings II
  20. Frogger
  21. Glug Glug
  22. Golf Stats
  23. Hangman
  24. Invasion Fours
  25. Klondike Solitaire
  26. Knight & Lanseque
  27. Mastermind Лабиринт
  28. Сапер
  29. Mousehunt
  30. Игра чисел
  31. Pipe Dream
  32. Pong
  33. Случайная точечная стереограмма
  34. Reversi
  35. Rotation
  36. Rubix
  37. Rush Hour
  38. Sci-Fi Plot
  39. Slots
  40. Snake Сокобан
  41. Squ are Poker
  42. Stones of Power
  43. Sudoku Solver
  44. Tetris
  45. TexTwisT
  46. Tic-Tac-Toe
  47. Ханойская башня
  48. Trouble
  49. Video Poker
  50. Word Search
  51. Yahtzee
  52. 1541 zodiac

900 ) Опасный Дэйв в Exel

Загрузите его из Dangerous Dave в Excel

16) Ribbon Hero 2 от Microsoft

Загрузите его из Ribbon Hero 2 в Excel

17) 18 игр Excel

Загрузить из 18 MS Excel Games

Вот список игр:

  1. Drive-by Sean O’Sullivan
  2. Memory by Chris Leonard
  3. 3D Tic Tac Toe от Tim aka Bolo
  4. Экранная пустышка от Мэтта Науманна
  5. Life от Джерри Хантера
  6. FootyLeague от Рассела Пайпера через Ивана Моала
  7. FootyLeague Джонатан Дэвис,
  8. Magic 8 Ball, Рич Нидхэм,
  9. Палач, Джозеф Коньяр,
  10. Змеи и лестницы, Боб Лалонд,
  11. Крестики-нолики, 4 × 4, Барри Точер,
  12. Змея, Джохен Вриске,
  13. Master Mind, Дэвид Тейт
  14. Color Game от Иоанниса Циамаданиса
  15. Tiles Game от Иоанниса Циамаданиса
  16. Knights Game от Энди Поупа
  17. ExcellonII от Коичи Тани, перевод Коло
  18. 3D Tic Tac Toe от Стива У (White6174)

от Colo

18) Excel Guru

Посетите : Excel Guru

На этом сайте доступно 15 игр с электронными таблицами, таких как Autobahn, MBX Tricks, Cave Puzzle, CelTetris, David Copperfield, Knife Throw, Mosquito, MySnake, Parking, PJ World, Slotcell, Sudoku Solver, Water Share и другие.

.

Fun With Excel — Игры для Excel

На этой странице перечислены некоторые электронные таблицы и ссылки для получения удовольствия от работы с Microsoft Excel. Спирограф — это очень крутое использование диаграммы, а в игре Mine Blaster используется очень необычное условное форматирование. Наслаждаться. 🙂

Спирограф

Приведенная ниже таблица спирографа была первоначально отправлена ​​мне Гэри Стрингхэмом. Он дал мне
разрешение немного нарядить его и разместить на этом сайте. Спасибо, Гэри.

⤓ Скачать

Для: Excel 2007 или более поздней версии

Лицензия : Только для личного пользования

Описание

Это забавная небольшая таблица, которая позволяет вам создавать спирограф.Попробуйте поиграть с ползунком и изменить некоторые параметры, чтобы изменить масштаб и количество «спиц».

Объявление

Mine Blaster 1000

В этой игре используются только формулы и форматирование — без VBA. Если вас поймают за игрой, скажите, что вы пытаетесь научиться использовать условное форматирование, и что эта игра была создана специально для демонстрации примера условного форматирования.

Mine Blaster 1000 ▶

Сделайте небольшой перерыв, чтобы попробовать новую игру, разработанную специально для Excel 2007/2010.Mine Blaster 1000 похож на Minesweeper, но вы пытаетесь взорвать мины, а ваши бомбы стоят денег. Можете ли вы очистить минное поле менее чем за 1000 долларов?

Турнирные сетки и офисные соревнования

NCAA Bracket and Pool Template ▶

Дружественные офисные соревнования, связанные с March Madness и другими спортивными турнирами, могут быть очень интересными. Вы можете загрузить нашу сетку NCAA March Madness и использовать таблицу пула, чтобы отслеживать выборы разных игроков, а очки, заработанные за правильные угадывания, рассчитываются автоматически.

Призрак в моей таблице

👻

Другие забавные вещи с Excel

Игры Excel

Есть множество игр, сделанных для Excel. Большинство из них используют VBA и очень простую графику.

  • Excel Treasure Hunt от Дебры Далглиш — забавная электронная таблица с объяснением того, как она была создана.
  • Andrew’s Games — AndrewsExcelTips.com — блог Эндрю, в котором перечислены игры, которые он создал, включая Mastermind , Battleship , Rocket , Excel Snake и Morse Code .
  • Excel Games — www.cpearson.com Рентген! похож на Minesweeper (VBA не защищен — так что вы можете взглянуть). Mine3D , xlCube и Excel Bingo (предоставлено Дэвидом Хагером).

.

6 легендарных игр, созданных в Microsoft Excel

Excel — спаситель во многих отношениях. Формулы, функции, рабочие книги и бизнес-аналитика — это лишь некоторые из его возможностей по обработке данных. Но как насчет тех времен, когда всего этого слишком много, когда хочется просто расслабиться, хотя бы на мгновение? Что ж, Excel по-прежнему вас охватывает, гениальное программное обеспечение.

Мы собираемся кратко рассмотреть шесть игр, в которые вы можете играть, не покидая безопасных границ Excel, то есть вы можете играть, когда работаете, и работать, когда играете.Ваш босс может не поблагодарить нас за это!

1. 2048

Если вы не были под камнем в течение прошлого года, вы, вероятно, сталкивались с дьявольски захватывающей головоломкой 2048 .Головоломка для одного игрока, построенная на предыдущих итерациях, таких как Threes и 1024 , была написана за один уик-энд 19-летней Габриэле Чирулли. Не желая зарабатывать деньги на «том, что он не изобретал», Чирулли загрузил бесплатные версии 2048 для iOS и Android.

2048 Microsoft Excel Game

Теперь вы можете играть в 2048 в Excel, используя полный спектр инструментов Excel для улучшения своей игры.Это означает, что вы можете отслеживать свои ходы, чтобы лучше спланировать следующую игру, а также возможность сохранить свой прогресс в любой момент для возобновления, когда босс покинет здание.

Как ни странно, Redditor Krzychu81 разработал сверхстелс-версию с «высокоразвитыми механизмами маскировки для маскировки под финансовые отчеты.«

Scared of Being Caught 2048 Microsoft Excel

Загрузите исходную таблицу Spreadsheet1.com здесь, или продвинутую скрытую версию здесь. Обратите внимание, что последняя ссылка — это прямая загрузка файла .xls.

Одна из самых популярных в мире настольных игр по управлению недвижимостью теперь доступна в Excel.Разработчику Эндрю Вернеру потребовалось около 14 часов, чтобы создать имитацию монополии для Excel с использованием языка программирования VBA (Visual Basic для приложений). Верный своей форме, симулятор «Монополия» способен обслуживать до четырех игроков с возможностью ввода данных человеком или компьютером.

Monopoly Microsoft Excel Game

Чтобы загрузить «Монополию», щелкните здесь.

3. EXLCOM

Никогда нельзя недооценивать высшую силу электронных таблиц.XCOM приходит в Excel в виде сверху вниз очень популярной пошаговой игры.

EXLCOM является результатом попытки пользователя Reddit crruzi изучить Visual Basic для работы, и их усилия сохранили некоторые из самых знаковых частей игрового процесса XCOM, такие как разрушаемые стены.В игре также есть редактор уровней, и, хотя он все еще находится на очень ранней стадии разработки, порт XCOM представляет собой довольно удивительное средство передвижения.

EXLCOM Microsoft Excel XCOM Game

Текущая версия EXLCOM работает с несколькими версиями Excel, но я пока не могу найти полный список.Вам также необходимо обновить код VBA, чтобы обеспечить 64-битную совместимость. Создатель crruzi опубликовал это исправление в исходной ветке Reddit:

«Если вы откроете VBA и перейдете к первому модулю (названному FightBackgroundFunctions), не могли бы вы заменить первую строку, которая должна быть

  Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)  

с

  # Если VBA7 и Win64, то  
  Public Declare PtrSafe Sub Sleep Lib "kernel32" (_  
  ByVal dwMilliseconds As LongLong)  
  #Else  
  Public Declare Sub Sleep Lib "kernel32" (_  
  ByVal dwMilliseconds As Long)  
  # Завершить, если  

Он должен создать правильную команду в зависимости от вашей системы.»

Это должно уладить все за вас.Если нет, то связанный поток содержит ряд других исправлений ошибок, над которыми вы можете подумать.

4. Candy Number Crunch Saga

Возьмите под свой контроль фондовый рынок, особенно влияя на рыночную цену Candy Crush Saga , разработчика King.com. Этот сатирический взгляд на сериал «разворачивается в недалеком будущем, когда King.com (KING) успешно провел IPO», и бремя реализации их мечтаний о фондовом рынке становится невыносимым.

Candy Crush Number Saga Microsoft Excel

Candy Number Crunch Saga включает более 35 новостных событий, непосредственно влияющих на курс ваших акций, включает тикер акций в реальном времени и является отличным результатом четырехдневной работы канадского бухгалтера Кэри Уокина.Candy Number Crunchy Saga работает на ПК версий Excel 2007, 2010 и 2013, и вы можете скачать их отсюда.

5. Менеджер чемпионов для MS-Excel

Одна из самых захватывающих игровых франшиз в мире делает прыжок в Excel.Это действительно имеет смысл, поскольку более ранние версии Championship Manager были по сути просто интерфейсами электронных таблиц (на самом деле, многое изменилось, глубина тактики панели и что-то еще?), И это исполнение Champ Manager так же на один щелчок больше стимулирует, как и его сверстники.

Champ Manager for Excel

Вы можете играть в четырех лучших английских лигах, Кубке Англии, Кубке Лиги и Лиге чемпионов, а также делать переводы из базы данных 3000 игроков.Дисквалификации и травмы, кажется, происходят довольно легко, но также легко собрать команду с молодыми игроками, чтобы смягчить их.

Вы можете загрузить Champ Manager для MS-Excel через эту ветку, которая также содержит исправления ошибок, выпущенные автором.

6. CellSweeper

CellSweeper — это ролевая игра в жанре ролевой игры, основанная на Minesweeper, созданная в Excel.Он включает шесть классов персонажей, быстрый игровой процесс и, казалось бы, обратную кривую сложности. Тем не менее CellSweeper более интересен, чем кажется, и я уверен, что вы потратите на это больше времени, чем вы думаете.

CellSweeper Microsoft Excel

Вы можете скачать CellSweeper здесь или зайти в thewrongtools, чтобы найти другие оригинальные игры Excel от того же разработчика.

Бонус: Fraqcel

Это не совсем игра; скорее психоделический исследовательский опыт или, по крайней мере, его попытка.Fracqel создает обширный фрактальный дизайн, который вы можете изучить в Excel, позволяя увеличивать масштаб во много сотен раз, чтобы исследовать глубины геометрии. Он имеет четыре типа фракталов, функции экспорта изображений, возможности глубокого масштабирования и настраиваемые цветовые палитры.

Fraqcel Microsoft Excel Fractal Generator

Вы можете скачать Fraqcel прямо здесь.

Обзор игр Excel

Есть еще тысячи выдающихся игр Excel.В играх, на которых я сосредоточился здесь, используется комбинация VBA и созданных вручную макросов, чтобы доставить удовольствие, но Excel также может поддерживать огромное количество флеш-игр. Предупреждаем: флеш игры намного сложнее скрыть от других людей!

Во всяком случае, эти игры демонстрируют удивительную универсальность Excel, и, если вас поймали за игрой во время работы, вы можете хотя бы указать на ваши постоянно расширяющиеся знания о внутренней работе Excel.Если вы хотите найти больше игр в формате Excel, просмотрите этот мега-список. Счастливого отличия!

Какие ваши любимые игры в Excel? Облегчают ли они незаметную игру на рабочем месте?

internet-annoyances

11 интернет-раздражителей, от которых можно сразу избавиться

Интернет создает проблемы, которые могут испортить просмотр.Вот несколько распространенных проблем в Интернете и способы их устранения.

Об авторе

Гэвин Филлипс
(Опубликовано 578 статей)

Гэвин — старший писатель MUO.Он также является редактором и SEO-менеджером дочернего сайта MakeUseOf, ориентированного на криптовалюту, Blocks Decoded. У него есть степень бакалавра (с отличием) в области современного письма с использованием методов цифрового искусства, разграбленных на холмах Девона, а также более десяти лет профессионального писательского опыта. Он любит много чая.

Ещё от Gavin Phillips

Подпишитесь на нашу рассылку новостей

Подпишитесь на нашу рассылку, чтобы получать технические советы, обзоры, бесплатные электронные книги и эксклюзивные предложения!

Еще один шаг…!

Подтвердите свой адрес электронной почты в только что отправленном вам электронном письме.

.

игр в Excel? | Справка Excel

Excel — это электронная таблица. По крайней мере, это то, что многие пользователи получают с Excel. Он способен на гораздо большее. Вместо того, чтобы организовывать клиентов и учетные записи, вы можете упорядочить местоположения на карте, здоровье, ущерб, местоположения и другие параметры, которыми также должны управлять игры. Можно пойти еще дальше и встроить игры прямо в сам Excel. Следующие два изображения, одно из игры в стиле Missile Command, а другое из игры Tower Defense, были созданы в Excel.Обе игры доступны для скачивания.

Это всего лишь пара. Есть даже ролевые игры, настольные игры, ползунки по лабиринтам — просто потрясающе, на что способен excel.

Монополия

Эта имитация классной настольной игры «Монополия» — лишь один из примеров того, как далеко может зайти Excel. Это началось как способ разработки новых стратегий для компьютерных игроков, но в конечном итоге превратилось в настольную игру для четырех игроков «Монополия». Затем в нее вошли компьютерные противники, так что один игрок мог самостоятельно играть в игру «Монополия» для четырех человек.Используя только скрипт Excel и VBA, это прекрасный пример того, как далеко может зайти Excel. Создатель Эндрю Вернер пошел еще дальше, позволив вам регулировать сложность ИИ.

Вы можете получить Монополию здесь.

Арена

Arena — это ролевая игра (RPG), созданная в Excel. Он был популяризирован благодаря размещению на популярном сайте сообщества reddit.com.

В игре возможностей:

  • Более 2000 врагов с различными способностями ИИ.
  • 39 Модификаторы предметов, в результате чего получается более 1000 комбинаций предметов и атрибутов.
  • Одна из 4-х различных концовок, выбранных игроком.
  • Различная тактика, используемая 8-м боссом игры.
  • 31 различных заклинаний.
  • 100 достижений.

Если вам нужна помощь в этой масштабной игре, у нее даже есть собственная вики-страница, которая поможет вам.
Вы можете получить арену здесь.

Тетрис

Этот клон тетриса был создан Джорджем Лунгу в 2010 году.Это красивый клон этой классической игры, полностью созданный в Excel. Он оценивает очистку вашего ряда так же, как и оригинал, и вы можете регулировать скорость падения кирпичей. Есть функция, при которой если вы поставите игру на паузу, вы потеряете все свои очки. Оказывается, сын г-на Лунгу приостанавливал игру, чтобы определить лучшее место для кирпича, а затем делал паузу, позволяя ему набрать огромное количество очков. Со всей графикой в ​​этой игре она может работать медленно, если у вас старый компьютер.

Вы можете получить этот клон Тетриса здесь.

Прорыв

Еще один римейк классической версии Atari, Excel Breakout, начался с тестирования возможностей перетаскивания объектов в пользовательских формах Excel для визуальной организационной диаграммы. Заметив, что объект в форме Excel может следовать за движением мыши, возникла идея сделать это ракеткой. По ходу игры ракетка с укорочением и мяч с ускорением начинают двигаться. Эта игра полностью написана на VBA.

Хотя нет игровой версии, есть видео игры в действии.

Возможности Excel не перестают удивлять.

.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *