dojiksi
🚢

Морской бой

Играй против умного бота прямо в браузере. Расставь корабли — кликай по вражеской доске.

⚓ Расставь свои корабли
Твой флот
Корабли:
R — повернуть. Соседние корабли не могут касаться.

Правила «Морского боя»

Морской бой — классическая игра двух противников на двух полях 10×10. У каждого игрока флот из 10 кораблей:

  • 🚢 1 четырёхпалубный (линкор)
  • 🚢 2 трёхпалубных (крейсера)
  • 🚢 3 двухпалубных (эсминца)
  • 🚢 4 однопалубных (катера)

Итого 20 клеток заняты кораблями, 80 пустые. Корабли расставляются на своём поле так, чтобы они не касались друг друга — ни сторонами, ни углами.

Как ходить

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

Цель — потопить все 10 кораблей противника раньше, чем он потопит твои.

Стратегия — как выиграть в морской бой

  • Шахматный поиск. На пустой доске стреляй по клеткам через одну — это гарантированно «зацепит» любой корабль длиной от 2 палуб. Так в среднем ты найдёшь все 2-, 3- и 4-палубные за 50 ходов вместо 100.
  • «Добивай» после попадания. После «ранил» проверь все 4 соседние клетки (вверх, вниз, влево, вправо). Корабль точно идёт в одну из сторон.
  • Угадывай длинные корабли первыми. 4-палубник занимает много места — после поиска по шахматной сетке его легче находить, чем катера.
  • Не размещай флот у краёв. Многие игроки начинают с углов — там корабли часто прячут. Бот это тоже знает.
  • «Разбросанная» расстановка. Раскидай корабли по полю — не клади трёхпалубник рядом с четырёхпалубником. Это снижает шансы соперника поймать сразу несколько.

Как играет наш бот

Бот использует двухрежимный алгоритм:

  1. Режим «охота». Пока нет ни одного попадания — стреляет по «шахматной сетке». Это оптимальная стратегия по теории игр: гарантированно зацепит любой корабль не короче 2 палуб.
  2. Режим «добивание». Сразу после попадания пробует 4 соседние клетки. Если попадает второй раз — продолжает в том же направлении, пока не «убьёт» корабль.
  3. После убийства. Помечает все клетки вокруг убитого корабля как «гарантированно пустые» (там кораблей быть не может по правилам) — экономит ходы и возвращается к охоте.

Бот не «читает» твою расстановку — у него нет знания, где твои корабли. Только результат каждого выстрела. Игра честная.

История игры

«Морской бой» появился во время Первой мировой войны (1914-1918) — солдаты в окопах играли друг с другом на листочках бумаги. Современные правила сформировались к 1930-м годам, а в 1967 году компания Milton Bradley выпустила первую коробочную версию Battleship с пластиковыми досками и фишками.

В СССР игра вошла в каждый учебник по информатике 80-90-х как пример программирования. До сих пор «Морской бой» — одна из самых популярных игр для двоих.

Частые вопросы

Сколько кораблей в морском бое?

10 кораблей: один 4-палубный, два 3-палубных, три 2-палубных и четыре 1-палубных. Всего 20 клеток.

Можно ли ставить корабли по диагонали?

Нет, только по горизонтали или вертикали. Это правило с 1930-х.

Можно ли играть онлайн с другом?

Пока — только с ботом. Режим «играть с другом по коду» добавим в следующем обновлении.

Можно ли сохранить игру и продолжить позже?

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