Как сделать морской бой в excel?

9 игр, сделанных в Excel, в которые можно поиграть на работе

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

А что если я скажу вам, что с помощью Excel можно играть в игры, которые написаны в этом же редакторе? И вы при этом всегда сможете отмазаться, сказав спалившему вас за игрой начальнику, что вы на самом деле работаете, вот же Excel открыт!

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

Итак, 9 игр, в которые можно поиграть с помощью Excel.

Лабиринт 3D

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

Суть игры простая — найти выход из лабиринта. Управление осуществляется специальными кнопками в самой книге Excel с игрой. Такое развлечение быстро надоест, но на полчасика вам хватит.

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

Нестареющая классика. Змейка была на древних компьютерах и приставках, была на телефонах, была монохромной, была объемной и цветной, была даже с сюжетом, так почему бы не быть змейке в Excel!?

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

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

Хорошо, когда вы работаете в большой компании и вас в офисе есть стол для пинг понга. Можно пойти сыграть с коллегами, размяться. Но даже если у вас такой роскоши нет, в пинг понг все равно сыграть можно. Скачайте книгу для Excel с этой игрой и соревнуйтесь на здоровье. Главное следите за обстановкой вокруг, едва ли ваш начальник похвалит вас за эту кибер спортивную самодеятельность.

Морской бой

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

Переходим к более серьезным играм. Как вы думаете, насколько сложную игру вообще можно сделать на базе Excel? А вот один бухгалтер из Торонто взял и сделал полноценную RPG.

Игра, очевидно, не блещет графикой и крутостью механик, но тем не менее отлично проработана. В не есть более 2000 разных противников, разные вещи, надеваемые на персонажа, несколько заклинаний и 4 концовки! Таким набором не каждая современная RPG от именитых разработчиков может похвастаться, а тут просто поделка в табличках.

Шутер в лабиринте

Раз есть RPG, то почему бы не замутить шутер, правда? Есть и такое, причем немало. Вот, например, одна из таких игр. Геймеры-энтузиасты взяли и сделали бродилку в лабиринте, где на тебя нападают враги, а ты должен от них отстреливаться и искать выход из этого самого лабиринта.

Это, конечно, не Counter Strike и не Battlefield, но если на рабочий компьютер нельзя поставить игры, сойдет и такое.

Dave vs Ziggy

Мой личный фаворит среди игр на Excel. Это не просто какая-то бессмысленная бродилка, это полноценный шутер с сюжетом! Главный герой по имени Dave борется с инопланетной расой Ziggy с помощью нескольких видов оружия.

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

Как сделать морской бой в excel?

Список необходимой литературы

Эта небольшая статья может оказаться интересна тем, кто увлекается программированием и хочет узнать новые алгоритмы или решения новых задач. Речь пойдет о реализации игры «Морской бой» (подобной той, что можно скачать) на Делфи, а точнее, на Паскале, т.к. вопросов, связанных с организацией интерфейса, мы касаться не будем. Если Вас не устраивает язык Pascal, то можете перевести представленный ниже код на любой другой язык. Выбор пал именно на Паскаль по двум причинам: во-первых, игра была написана на нем; во-вторых, он наиболее нагляден и идеально подходит для представления алгоритмов. Сразу оговорюсь, что полный исходный текст программы выложен не был, т.к. эту игру я писал достаточно давно, когда еще учился в школе, и код получился достаточно запутанным и непонятным (тогда я так писал). Тем не менее, если Вам очень нужны исходники, напишите мне, и я вышлю их по мылу.

Читать еще:  Как сделать график спроса и предложения в excel?

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

Алгоритм размещения кораблей на игровом поле

Игровое поле нужно как-то хранить в памяти компьютера. Наиболее простая реализация — в виде матрицы 10×10 клеток (ячеек). Определим соответствующий тип и переменные, которые нам понадобятся:

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

По правилам игры два корабля не могут соприкасаться друг с другом, т.е. между ними должно быть пустое пространство минимум в одну клетку. Нам понадобится вспомогательная функция, которая позволит определить, можно ли поставить однопалубный корабль в указанную ячейку или нет. Для этого необходимо проверить саму эту ячейку и все соседние (их 8 штук). И только если все они не заняты можно дать положительный ответ (True), в противном случае — отрицательный (False):

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

Это, собственно, и все, что касается размещения кораблей компьютера. Теперь достаточно сделать вызов: Ship (Pole); и корабли будут случайным образом расставлены по своим местам. Подобным образом можно помочь пользователю, что бы он каждый раз не тратил время на эту операцию, вызвав Ship (Play); где Play — поле игрока (тип TPole).

Стратегия игры компьютера

Задача заключается в разработке алгоритма, по которому компьютер сможет играть в «Морской бой» с максимальным качеством и при этом не подглядывая расположение флота игрока. Дополнительное и очевидное условие: при каждой новой игре вне зависимости от размещения сил противника компьютер должен играть по-разному, т.е. его ходы должны быть не предсказуемы. Необходимо вспомнить правила игры: участники поединка делают ходы поочередно, причем, если один из игроков попадает по кораблю соперника, то он получает право следующего хода. Если реализовать поиск цели компьютером в виде отдельной процедуры, то надо как-то научить его запоминать исходы прошлых выстрелов, чтобы адекватно произвести следующий. Из этого факта вытекает, что самое простое и рациональное решение данной проблемы можно оформить в виде конечного автомата, наиболее точно описывающего последовательность действий. Если Вы не знаете теорию автоматов, то можете прочесть соответствующую литературу, ссылку на которую можно найти в моем списке литературы. Можно выделить три состояния:

  1. прострел игрового поля по случайным координатам до попадания по кораблю, после чего переход во второе состояние;
  2. обстрел вокруг подбитой ячейки поля для определения направления корабля (вертикальное или горизонтальное), после очередного попадания — переход в третье состояние;
  3. расстрел корабля в полученном направлении до полного его уничтожения, после чего переход в первое состояние.

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

Компьютеру потребуется еще одно поле, на котором он будет вести игру. Назовем его Play. Помимо этого нужно помнить, какие корабли остались у игрока, а какие уже разбиты. Объявим все необходимые переменные:

Перед началом игры надо настроить все значения. Это удобно сделать в отдельной процедуре:

Предположим, что у нас есть функция, которая выдает истину, если в ячейки (x,y) игрока стоит корабль и ложь в противном случае: function Killed (x, y: Integer): Boolean;. Еще потребуется функция, определяющая длину самого большого корабля игрока:

И функция, определяющая проигрыш юзера:

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

Прострел. На этом этапе компьютер должен поймать какой-либо из кораблей противника. Для этого он будет стрелять по произвольным незанятым клеткам поля игрока. Гораздо эффективнее сначала разделаться с большими кораблями, поэтому выбирая координаты для выстрела надо проверять, что бы в этой позиции мог разместиться самый большой из оставшихся кораблей. Процесс прекращается, как только произойдет попадание. Обозначим подбитую часть корабля значением 1, а промах -2 соответствующей ячейки поля. Если у игрока остались только однопалубные корабли, то этим попаданием корабль уничтожен полностью и обстреливать его нет смысла. В противном случае надо перейти ко второму состоянию. Приведем код описанной функции:

Читать еще:  Словарь в excel как сделать

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

Обстрел. На этом шаге задача заключается в определении направления пойманного корабля. Для этого надо обстрелять четыре ячейки (если они свободны), которые могут служить продолжением. В случае, когда все четыре клетки обстреляны, а попадания не произошло (однопалубный корабль), надо перейти к первому состоянию. Если в какой-то момент удалось подбить еще одну палубу противника, то можно переходит к расстрелу данного корабля, т.к. его направление стало известно. Аналогично первому состоянию, если у игрока остались корабли не более двух палуб, то этим попаданием корабль уничтожен полностью и надо вернуться к прострелу. Посмотрим, как все это выглядит:

Как сделать морской бой в excel?

На работе. Сотрудница заболела.
Звонок. Беру трубку.
— Анну Ивановну можно?
— Ее сегодня нет.
-Как. Она мне нужна! (И через паузу громко так): И Я УЖЕ ИДУ К ВАМ.

Угрожают ептить. Сижу..Жду..Ссыкотно.

Предыстория: начальнику подарили ipad, через некоторое время приходит рассылка.

Коллеги,
В связи с тем, что на средствах iPad последовательность листов файла Excel установлена справа налево и при открытии на iPad отображается крайний левый лист (вне зависимости от того, на каком из листов было осуществлено последнее сохранение), отдел переходит на нумерацию листов в формируемых справках справа налево. Пример: если ранее в справке ОЖЛ (файле Excel) листы нумеровались по датам 01.04, 02.04, 03,04….30.04, то теперь нумерация листов будет выглядеть так: 30.04, 29.04, 28.04….01.04.
Рекомендуется использовать подобный порядок нумерации листов для файлов Excel, направляемых руководству Компании (согласовано Директором).

Я люблю свою страну и живущих в ней людей!

xxxxx: сыграли с Романом на работе в морской бой по аське. я нарисовал поле 10х9, а он корабль 4ной забыл поставить. Сука два долбоёба.

Надо было срочно сделать особенную диаграмму для руководства,в Excel, пришлось погуглить: учебное пособие, глава «Внутренний мир диаграмм Excel». Вон оно чо! А я к ним напрямую, по-пролетарски, а там внутренний мир и сложная душевная организация!

Я сегодня на работе решил по-угарать. Отправлял анонимно смс через сайт.

вот знакомая делится впечатлениями

ЛюблююлбюЛ: У меня сегодня странность произошла
Я:какая?
ЛюблююлбюЛ: Я в яндексе че-то написала про секс, мне выдал фотки сексуальные и форум, я читала читала
ЛюблююлбюЛ: Наткнулась на женские письки
ЛюблююлбюЛ: через несколько секунд мне приходит смс
ЛюблююлбюЛ: «Думай о работе , а не о пизде! IP:188.128.94.110// Приятного общения! МТС»

Сегодня играли в боулинг. Один товарищ с криком: «Лунная призма, дай мне силу!» выбивает страйк хД

MissleMike
Сегодня до трех ночи играли в бридж. Осознал одну важную вещь — в игре нужно периодически меняться местами, а то дружеская атмосфера начинает накаляться.
Это как когда играешь в дурака: один и тот же человек на тебя постоянно ходит. Через некотрое время ты его начинаешь ненавидеть.

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

xxx>> А чего тебя уволили то?
yyy>> я от безделья на работе в аксессе написал на vba морской бой)) когда уже тестил последние версии — спалилсо 🙁 Начальник не оценил(
xxx>> сцуки!! это в высшей степени возмутительно и недопустимо!)))
yyy>> Ниче, я им отомстил, я перед уходом интегрировал этот морской бой в нашу основную БД) Говорят, этого уже не оценил начальник моего начальника. )))

Устраиваюсь тут на новую работу. Сегодня приходит от их менеджера отдела
кадров по эл. почте анкета, которую нужно заполнить и отправить. Анкета
в Excel. Уже в письме насторожили слова, что «фотографию прикладывать не
надо».
И действительно — открываю Экселевский файл и вижу первый вопрос:
«Фамилия, имя, отчество — Заполнять только печатными буквами!»
Кто знает, как в Excel вставить рукописный текст?

В продолжение истории №36 от 10 декабря про автосуммирование в Excel.
То-ли еще бывает, истории про компьютерную безграмотность просто
неистощимы.
Женщина — соседка, правда постарше, лет 50, работает на компьютере не
первый год. Ну, как обычно: Word, Excel. Приходит ко мне и просит
объяснить, как эти файлы на дискету сохранить. Реально старался не
смеяться и минут 40 ей растолковывал, как требуемый файл, нажав левым
ухом мыши, перетащить на иконку с 3.5 дюймовым дисководом(про функцию
копирования даже не стал и пытаться объяснять, тем более про CD-Rom и
т.д.). Она конспектировала. На следующий день звонит:
— А как же я эти дискеты в метро повезу?
— не понял?
— Ну в метро же излучение от турникетов, вся информация сотрется на
дискетах.
— Потратил некоторое время на объяснения, что это, мягко говоря, не так.
А вам слабо такой объяснить про автосуммирование в Excel?

Читать еще:  Как сделать счет фактуру в excel?

Дневник Вовочки:
1-е сентября. Сегодня меня посадили за одну парту с Машей. Мне Маша
сразу
показалась умной приятной девочкой.
2-е сентября. Да, я кажется не ошибся: Маша такая умная и интересная
девочка!
Сегодня я ее научил играть в «морской бой».
3-е сентября. Маша такая толковая и умная девочка! Я ее сегодня научил
стрелять
из рогатки — она быстро освоилась попадать в цель.
4-е сентября. Ну Машенька очень разумненькая и толковая девочка! Мы
сегодня после
уроков долго играли с нею в «дочки-матери». Кажется, она понимает меня
просто
с полуслова.
5-е сентября. Сегодня я заглянул Маше под юбку. Такая же дура, как и
все.

Сегодня на работе в Excel’е заполняю бланк «наряда-допуска» для работ в электроустановках. Жму на проверку орфографии. Эта умная программа предлагает мне заменить ОПУ (оперативный пункт управления) на ЖОПУ.

Парень сегодня рассказал про чела на работе.
Говорит такой:
— Чел ходил седня весь день напевал:»А я скора увальняюсь с этой гребаной рабоооооты»
Мой спрашивает, а типа почему, ты ж контракт на год подписывал. Ответ убил:
— А мы с чуваками в карты на желание играли как-то, я проиграл и мне загадали устроится на полгода грузчиком работать. полгода почти прошли)))

Сижу на паре.Лектор(Л) что-то дикламирует,шум стоит в аудитории.Пацаны(П) через ряд режутся в морской и выкрикивают : «А4!А5!».Лектор им:
Л:Да сколько можно.Вот люди спокойно играют в морской бой,а вы как-то бурно играете.
П:Ага,аж брызги летят!
Лектор после небольшой паузы
Л:Ну это вы явно не в морской бой играете.

Аудитория умерла вмиг))

Urchin: Сегодня играли с шефом в Чингис Хана..
Killa: ммм?
Urchin: мы были небольшим поселением на Руси, а он татаро-монгольской ордой — набежал, ограбил (аванса не будет пока проэкт не сдадим) и изнасиловал (как-то даже работать захотелось) :-/

Мы на работе играли в CS. Но пришел директор и сказал, что в CS играть нельзя, т.к. она не лицензионная. Надо найти что-нить лицензионное. на торренте 🙂

!trans excel
excel — v. 1) превосходить (in, at); to excel smb. at smth. превосходить кого-л. в чём-л. 2) выдаваться, выделяться; to excel as an orator быть выдающимся оратором
если б пираты офис переводили, то юзали бы мы Майкрософт Превосходить, Майкрософт Слово и Майкрософт Доступ =)

Excel
Интересно, что у меня в контакт-листе делает человек, все хистори с которым состоит из фразы (с его стороны) «:D 😀 Калоша?»

На работе начальник мне»сделай сегодня это».Через пять минут»так,это бросай,делай вон то».Ещё через некоторое время»ой,на эти детали комплектовка закончилась,бросай всё-помоги там».Вот я сижу и думаю где б приобрести бутафорские мозги с влагалищем,чтоб ему на днюху презентовать.

Курсовая работа
Игра «Морской бой» (Sea Battle)
в среде программирования Visual Basic .NET 2017 (Вижл Бейсик)
Программа

Среда программирования: Visual Basic .NET 2017

Название работы: Игра «Морской бой» (Sea Battle)

Вид работы: Курсовая работа

Тематика работы: Алгоритмы, Игры, Графика

Объем программы: 4 (по десятибалльной шкале)

Уровень сложности: 4 (по десятибалльной шкале)

Разработчик (автор): Программист сайта kursovik.com (письмо автору)

Ключевые слова: visual c++, c++, игра, бой, морской бой, графика, BattleSea, морской, морбой, человек-компьютер

Стоимость ИСХОДНОГО ТЕКСТА программы составляет 600 руб РФ

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

    Как можно приобрести данную готовую работу ?

    Заполните форму, которая расположена чуть Выше данного текста и нажмите кнопку «Приобрести»

    Мы поддерживаем следующие способы оплаты:

    • любые банковские карты: Visa, MasterCard, Maestro, МИР
    • электронные деньги: QIWI, WebMoney, Яндекс.Деньги
    • оплата по квитанции в любом банке на территории России
    • оплата через отделения Евросети и Связного
    • оплата с баланса мобильного телефона
    • оплата через PayPal
    • оплата наличными

    Автоматическая оплата возможна с территории следующих государств:
    Россия, Украина, Беларусь, Казахстан, Молдова, Литва, Латвия, Эстония,
    Грузия, Армения, Азербайджан, Узбекистан, Таджикистан, Киргизия, Туркмения
    С помощью электронных денег и PayPal оплата возможна со всего мира.

    После заполнения формы Вы получите на свой E-mail автоматическое письмо со всеми подробностями оплаты заказа.

    В течение нескольких часов с момента оплата заказа. Мы работаем 7 дней в неделю.

    На Ваш E-mail адрес и в личном кабинете нашего сайта sys.kursovik.com.

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

    Да, мы можем гарантировать уникальность данной работы.
    Она была разработана нашим программистом на заказ и выставлена на продажу 7 июня 2015 года.

    Обычно работы по программированию всегда показывают больше 50% уникального текста.
    Это напрямую связано с тем, что даже если введение, заключение и теоретическая глава вдруг окажутся неуникальными, то сам текст программы и описание ее работы слихвой компенсируют этот недостаток, т.к. они пишутся с нуля, скопировать их вряд ли откуда можно.
    Тем не мнее, если вдруг при проверке купленной у нас готовой работы, она не дотятянет до требуемого в Вашем ВУЗе процента уникальности, то мы готовы поднять его при помощи специальной программы.
    ВНИМАНИЕ ! Это предложение действительно только для готовых работ, купленных на нашем сайте ! Повышать уникальность каких-либо других работ мы не будем 🙂

    Ниже приводится таблица продаж:

Ссылка на основную публикацию
Adblock
detector