Как сделать морской бой на c
Перейти к содержимому

Как сделать морской бой на c

  • автор:

Как сделать морской бой на html+js+css с перетаскиванием кораблей? Куда копать?

Здравствуйте, я вообще верстальщик, учусь в магистратуре.

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

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

1) Как сделать перетаскивание + разворачивание кораблей разного размера на площадке?
2) Каким образом сохранять все в noSQL и какую использовать?

Полный текст задания:

Описание задачи
Морской бой — классический вариант известной детской настольной игры. В игре два участника. Игроки по очереди называют координаты на неизвестной им карте соперника. Если у соперника по этим координатам имеется корабль (координаты заняты), то корабль или его часть «топится», а попавший получает право сделать ещё один ход.

Цель игры — первым поразить корабли противника.
Игровое поле — квадрат 10х10 у каждого игрока, на котором игрок размещает свои корабли

В состав эскадры каждого игрока входят:
* 1 корабль — ряд из 4 клеток (четырёхпалубный)
* 2 корабля — ряд из 3 клеток (трёхпалубный)
* 3 корабля — ряд из 2 клеток (двухпалубный)
* 4 корабля — ряд из 1 клетки (однопалубный)
При размещении корабли не могут касаться друг друга даже углами.

Необходимо создать приложение для игры в морской бой. Программа должна допускать два режима игры:
* Человек-компьютер (бот)
* Человек-человек

Функциональные требования:
1. Программа должна состоять из RESTful-сервиса (API) и клиентской части (html5/Javascript).
2. В качестве хранилища данных использовать nosql.
3. Клиентская часть не должна использовать polling запросы (возможно использование async, web socket, SignalR).
4. Программа должна позволять регистрацию пользователя, создание новой игры, выбор режима (с ботом или с человеком), просмотр статистики игр и текущего рейтинга среди всех пользователей.
5. Клиентская часть должна позволять визуально разместить корабли вручную либо по желанию пользователя разместить рандомно с возможность ручного изменения.
6. Сервис должен поддерживать одновременно несколько игровых сессий.
7. Программа должна позволять сохранение и возобновление игр.
8. В игре устанавливается таймаут (лимит по времени на ход), по истечении которого выставляется поражение (нет необходимости в функционале пауз).

  • Вопрос задан более трёх лет назад
  • 8918 просмотров

3 комментария

Оценить 3 комментария

Исходные тексты игр (253)

Игра Arcanoid.
Курсовой проект по Visual C++ & MFC.
Реализованы 3 типа кирпичей, бонусы,
загрузка — сохранение уровней.

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

Морской Бой под Windows.
exe+исходник.
Интересный алгоритм расстановки кораблей, предлагается выбор схем \\\»боя\\\»: классическая,
малые/большие корабли или составить свою, 3-х уровневый радар, статистика, звук, 3 уровня сложности, изменяем внешний вид, два языка.

Курсовая по программированию — игра «Сапер».
Реализован список победителей, поддерка аудио сопровождения и др.

Курсовая работа. Игра Рикошет. Все красочно и наглядно, 4 уровня. Делал быстро так, что не все с кодом ладно. Если бы позволил размер, не более1 mb, оставил бы еще и музыку. С музыкой гораздо веселее(спец. 8bit-ная музыка) 🙂

Игра «Морской бой». Реализована красивая графика, игра с компьютером, по сети и по интернету(но для этого надо знать IP адресс противника).

Крестики-нолики (непобедимые 😉
Обыкновенный морской бой.

Демонстрирует, как на OpenGL реализовать перемещение в пространстве (бежать вперёд-назад-влево-вправо, вертеть головой и т.д.)

Математическая игра по Гарднеру
Исходник сетевой игры «Морской бой», с довольно неплохой графикой, рейтингом.
Самый простенький арканоид, при каждом ударе о «доску» шарик ускоряется(OpenGL)

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

Игра 16.
Есть поле из 16-ти клеток. На нём есть 15 кубиков. Одна клетка свободна. Нужно расположить кубики в порядке возрастания номеров.
Исходникики на Visual Basic 6.0

Морской бой. Оригинальный алгоритм построения кораблей, использование радара(такого, вроде, ещё не было), выбор цветов, в отдельном файле запоминает карту ведения «боя».
exe+исходник.

Одна из моих удачных игр «Змейка». В ней есть один прикол читайте в Zmeja_Alexa.CPP(в коментарии). Кто ее пройдет, тот будет самым крутым геймером «Змейки». В знак доказательства пришлите мне ключ.Удачи.

Игра Arcanoid.
Загрузка, создание, сохранение уровней,
бонусы, 4 типа кирпичей.

Новая версия игры, в которой помимо красивой графики, сетевой игры и игры по интернет, реализованы история игры(все ходы) и рейтинг чемпионов.

«Однорукий бандит» Неплохая игрушка, прикольно поиграть когда скучно там она немного не доработанная ну если будет у вас желание то можете ее доработать 🙂

Поддержка

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

  • Классический «Русский» морской бой.
  • Классический вариант, но с супероружием. Оно доступно для покупки или может быть выиграно в лотерею.
  • «Американский» морской бой. От русского отличается числом и составом кораблей, а также правилами перехода хода.
  • Режим «Salvo». В этом режиме игроку доступно столько выстрелов, сколько кораблей осталось на текущем ходу. То есть можно сделать от 5 до 1 выстрела.

Играть можно как локально (с компьютером либо с другим игроком через Wi-Fi и Bluetooth), так и через интернет с другими игроками.

Вы можете играть как гость, просто запустив приложение, но мы рекомендуем вам зарегистрироваться для того, чтобы сохранить историю ваших побед, а также иметь возможность играть на разных устройствах. Если вы решили зарегистрироваться, то вам необходимо будет ввести ваш почтовый ящик, а также желаемый пароль. Вам нужно ввести новый пароль, НЕ СОВПАДАЮЩИЙ с паролем от почтового ящика, который был указан при регистрации.

Я не знаю правил игры или одного из режимов. Что мне делать?

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

Что такое профиль и для чего он нужен?

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

  • На iPad: нажать на иконку с изображением вашего аватара. Она находится в верхней части экрана.
  • На iPhone: нажать на иконку с изображением вашего аватара. Она находится в нижнем левом углу экрана в режиме игры через интернет.

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

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

Как поменять аватар?

Нажмите на изображение текущего аватара в профиле — после этого вам будет предложено изменить изображение. Таким же образом вы можете выбрать новый флаг, просто нажав на него.

Как поменять имя?

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

Как добавить игрока в друзья?

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

Что такое звание?

Звание — это обозначение уровня мастерства отдельного игрока. Звание меняется, как только игрок набирает необходимое число очков рейтинга:

  • «Моряк» (Рейтинг = 3 200 000)

Игрок ругается или у него неприличный аватар. Что делать?

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

Я хочу написать отзыв об игре.

Данная функция доступна в версии для iPad. Нажмите на кнопку с конвертиком в правом верхнем углу экрана. В появившемся меню выберите позицию «Написать отзыв» — вы будете переброшены на страницу приложения в AppStore. Там Вы сможете написать отзыв и поставить оценку.

Я хочу сообщить об ошибке или написать разработчикам приложения.

Нажмите на кнопку с конвертиком в правом верхнем углу экрана (iPad версия) или на кнопку «Поддержка» (iPhone версия). В появившемся меню выберите позицию «Техподдержка» — откроется окно почтового клиента, и вы сможете написать письмо в службу поддержки. К сожалению, в данный момент это можно сделать только в случае, если на вашем устройстве настроена электронная почта. Или вы можете отправить сообщение по адресу: support@kamagames.com.

Я забыл пароль. Что мне делать?

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

  • Условия использования
  • Политика конфиденциальности
  • Поддержка

© 2011-2016 KamaGames. Все права защищены.

Морской бой и Swing

Java-университет

А вообще я думаю на JavaRush можно было бы не только по играм, но и по другим проектам организовывать конкурсы, отбирать наиболее удачные и складывать в открытый для скачивания архив, со временем сделать базу своих приложений которые можно бесплатно раздавать и чем черт не шутит ещё и таким образом увеличить свою аудиторию 🙂 Самое интеренсное, что при удачном стечении обстоятельств это может быть всем выгодно:)

Grif Уровень 11
24 мая 2016

Кстати, у меня родилась маленькая идея… старндартный морской бой это интересно, но что если делать по уровням и слегка менять декорации, например:
1) 1-й уровень — надводный бой, 2-й уровень подводный бой, 3-й уровень морская авиация и т.д.;
2) С каждым уровнем повышать интелект ПК… 1-й рандомный обстрел, 2-й обстрел с добиванием, 3-й использование логики уменьшения количества обстреливаемых полей в два раза (я её назвал шахматная доска), 4-й применение логики при расстановке кораблей (увеличение свободного пространства для маленьких кораблей) и т.п.;

В общем с таким успехом ещё немного пофантазирую и глядишь начну команду подыскивать для совместного проекта «МОРСКОЙ БОЙ» :))) 😀

Torin Уровень 27
23 мая 2016

Javarush даешь конкурсы на создание игр в массы! Давайте уже не будем кривить душой, все блин игры клепаем, инфа сотка. Да весь ресурс построен на игровой механике, так что давайте… я жду :))

Grif Уровень 11
22 мая 2016

Я на 21-м уровне, поигрался в Ваш морской бой, впечатления хорошие. Пожелание — улучшить графику.

Раз пошла такая каша, предлагаю скриншоты своих варинатов морского боя.

Консольная версия:

Свинг версия

Консольную версию делал на 10-м уровне, реализовал два уровня сложности.
Свинговую версию пока не доделал, решил логику заново переписать, да намудрил с потоками всё работает, но логика слабая и вообще надо все доделывать и переделывать… доучу паттерны, потом подумаю над переработкой 🙂

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

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