Рубрика «Морской бой»

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

Начало

Всем привет! Начну сразу с предыстории. Учу Python не так давно, уровень простой — циклы, условия, списки, даже функции — простую базу знаю, но не более. Этот проект для меня стал испытанием, ведь когда решаешь обычные задачки «Вывести каждый чётный элемент массива, кратный 5...» — это одно, а если пишешь продукт (который возможно будет использоваться разработчиками), то ощущения совсем другие.

Читать полностью »

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

Читать полностью »

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

У BGP плохая репутация главным образом из-за доверительного характера связей между пирами по дефолту и трудной задачи проверки легитимности маршрутов. Вот почему мы повсюду слышим о взломах BGP разной степени серьёзности: от смены маршрутизации всего YouTube до сервиса AWS Route 53.

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

Играем в морской бой по BGP - 1

Читать полностью »

Сделай сам: алкогольная игра «Морской бой» - 1

Энтузиасты 3D-печати выложили STL-файлы двух- и трёхпалубных кораблей для игры в BattleShots — это вариант известной игры «Морской бой». Причём довольно специфический вариант.

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

Предисловие

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

Общая концепция текущей реализации

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

Стратегия расстановки кораблей следующая: 2-3-4 палубные размещаются по краям карты (2 клетки), 1-палубный в центре (квадрат 6х6).

image
Читать полностью »

Игра «морской бой»: расстановка кораблейДоброго времени суток, уважаемые! К сожалению, из-за больничного режима, я не мог последний месяц опубликовать своё очередное изыскание на тему игры «Морской бой». Надеюсь, моя заметка окажется для кого-то полезной, и, даже если и будет частичным повторением, то в новой интерпретации.
Итак, сегодня я хотел бы обсудить вопрос расстановки (не оптимальной, а произвольной) кораблей перед боем. Слева вы видите пример результата работы рассматриваемого далее алгоритма: корабли в форме букв «R», «A», «H», «B» расставлены на игровом поле размером 5х15 с несколькими запрещёнными к использованию клетками (помечены зелёным цветом). Заинтересовавшихся прошу под кат.
Читать полностью »

imageНедавно на хабре была статья про альтернативные крестики-нолики. Для не менее популярной у детей игры «Морской бой» мы тоже придумали продвинутый вариант, который позволяет надеяться не только на удачу, но и на умственные способности. Крайне незначительное изменение открывает целый спектр возможностей для применения логики.
Читать полностью »

Я помню, была неделя-две тематики морского боя, я к сожалению не успел опубликовать свою версию этой замечательной игры на С++.
Моя версия Морского боя под катом!
Читать полностью »

Привет!
Продолжая неделю морского боя, хочу предложить еще один способ построения оптимальной стратегии стрельбы. Он использует представление стратегии в виде дерева, что весьма распространено в теории игр. Представление задачи в виде таблицы решений позаимствовано из теории тестов, которая была популярна в 70-е годы прошлого века и применялась, в частности, для контроля и диагностики неисправностей в электронных схемах. Этот способ позволяет найти оптимальную стратегию, но у него очень большая вычислительная сложность. Увы, игру на поле 10x10 проанализировать не удалось.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js