Продвинутый морской бой

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

    И игровое поле, и набор кораблей, и правила их расстановки ничем не отличается от стандартного – на квадратном поле (хотя никто и не запрещает применять поля других форм) нужно разместить один четырехклеточный, два трехклеточных, три двуклеточных и четыре одноклеточных корабля, которые не касаются друг друга даже углом. Каждый выстрел – это указание координат клетки. Если в клетке находится корабль, то, как и обычно, стреляющему сообщается «убил» или «ранил». А вот если в клетке корабля нет, то помимо стандартного «мимо», сообщается еще и число, которое означает количество соседних клеток, занятых кораблями (как в известной игре «Сапер»). И это единственное отличие в правилах.
    В результате изменения правил каждый выстрел мимо дает кучу дополнительной информации, которой надо суметь грамотно воспользоваться. Хорошо, если сообщено число 0 – это означает, что можно смело вычеркнуть восемь соседних клеток, ну а если сообщенная цифра другая, то необходимо крепко напрячь мозги, чтобы извлечь из этого что-то полезное. Соответственно и выигрывает не тот, кому посчастливилось попасть в четырехтрубник первым выстрелом, а тот, кто сумеет быстрее извлечь информацию из загадочных цифр.
    imageРассмотрим небольшой пример (ситуация часто случается в обычной игре) – нам удалось быстро подбить четырехтрубник, но пытаясь определить его продолжение мы один раз промахнулись. Полученная во время промаха тройка – просто кладезь информации. Сразу после четырехтрубника мы можем, не останавливаясь, топить следующий корабль серией выстрелов b1, b2, b3. Этот случай, конечно же, прост, но бывают и гораздо более сложные рассуждения. Желающие могут доиграть эту партию:
    image

    Вообще морской бой является один из любимых объектов при создании разного рода головоломок. Небольшой, хорошо знакомый с детства набор позволяет получить огромное многообразие вариантов. Наиболее известный вариант головоломки – восстановить расположение кораблей, зная количество занятых клеток во всех строках и столбцах, – довольно часто публикуется в печати. Но для игры он подходит не очень, а вот «саперный» вариант вливается в игру очень органично.
    Ну а напоследок предлагаю задачу. В партии уже сделано несколько выстрелов и, о! ужас, все мимо. Постарайтесь подбить все корабли противника, больше не промахиваясь. Ответы (перечисление координат выстрелов) принимаю в личку. Первым пяти правильно ответившим обещаю плюсик в карму.
    image

    Средняя зарплата в IT

    110 000 ₽/мес.
    Средняя зарплата по всем IT-специализациям на основании 8 355 анкет, за 2-ое пол. 2020 года Узнать свою зарплату
    Реклама
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее

    Комментарии 36

      +18
      Так это же сапёр!
        +8
        Морской сапер!
          +19
          Минный тральщик :)
        +1
        Вот так задачку вы мне подкинули. Уже час мучаюсь.
          0
          А между тем — решение единственно. И, на мой взгляд, логически вычсиляемо.
            0
            Такой морской бой кажется даже интереснее обычного — вот только игра по таким правилам, похоже, быстро заканчивается :(
            Задачка хорошая, действительно решается логически — главное найти, с чего начать.
            Решение отправил.
              +1
              Да, игра короче. Если очень хочется удлинить, то можно увеличить поле и число кораблей. Или сыграть три партии вместо одной :)
              +1
              Очень даже вычисляемо, клевая задачка!
            +1
            Не прокатит. Кто первый походил у того фатальное преимущество если тупить не будет…
            Позволю себе напомнить уважаемому хабрасообществу про азиатскую (изначально китайскую, затем корейскую, но именно японцы довели до совершенства эту игру) — игру Го
            В зависимости от культуры названия: Go, iGo, Вэйци(围棋), Бадук (Падук скорее произносится — 바둑)

            Цитата:
            «Число всех возможных позиций на шахматной доске (не противоречащих правилам, скажем, двух королей вы не можете поставить рядом) составляет ориентировочно 10^46 (в шашках порядок куда скромнее — 10^20), потому лучшие суперкомпьютеры планеты сообща не переберут их всех поочерёдно даже за время, на многие порядки превышающее возраст Вселенной.»
            "
            … число возможных конечных позиций в партии го (на стандартном поле 19 х 19) составляет 10^171. И к ним можно прийти одним из 10^1100 путей"

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

            «Черные» делают ход первыми, ставят первый камень на доску. Столетия игры выявили правило — это даёт «черным» преимущество. На доске 19х19, при 10^171 вариантов и 10^1100 путей, тем не менее эмпирически, столетиями опыта выснилось, что черные имеют преимущество в 5-6 камней на доске к итогу партии.
            В итоге японцы ввели правило «коми» (или «гандикапа», «форы» по-нашему) именно 5,5 очков.
            Тот кто играет за «черных» уже изначально проигрывает 5,5 камней при подсчете очков, и начинает игру проигрывая, давая белым фору. Заодно и ничьей не будет.

            Если говорить о «морском бое» в статье и сравнивать…
            «А гандикап предусмотрен?» — мой первый вопрос.
              0
              Да, как при такой сложности вывели именно 5-6 очков гандикапа для равной игры во времена за столетия до первого транзистора? Очень просто, это вершина «приближенных вычислений».
              Разные мастера примерно одного уровня играли серии партий друг против друга поочередно за Б и за Ч, и сравнивали разницу очков в итоге. За несколько тысяч «калибровочных» игр истории Go значение стало ясным, оно между 5 и 6 камней.
                +1
                http://ru.wikipedia.org/wiki/Коми_(го)
                Тем не менее, в 21-м веке почти повсеместно принято играть с коми 6.5, а в Китае уже и 7.5.
                  –1
                  Я и многие игроки не согласны, исторически сложилось, что коми начался когда-то с одного очка, потом рос и рос, и в настоящее время китайцы играют до 9.5 очков коми. Перебор. Баланс был на 5.5 очков, рост коми с эволюцией должен был остановиться на 5.5 — выше это уже компенсация психологической составляющей. IMHO
                    +1
                    Не уверен, что рост коми кому-то что-то должен )

                    Каждый ход стоит каких-то очков, первые — много, последние — мало, игра останавливается, когда стоимость становится отрицательной.

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

                    У меня недостаточно мастерства, чтобы оценить, какая часть этого преимущества обьективная, а какая — психологическая. Но то, что коми растет — вполне обьяснимо — эволюционирует техника игры.
                0
                Вы путаете детерменированные игры с полной информацией (какими являются и шахматы и го) и случайную игру с неполной информацией.
                В детерменированных играх действительно можно построить полное дерево вариантов (по крайней мере теоретически) и обнаружить его дисбаланс. Естественно, для выравнивания этого дисбаланса и необходим гандикап.
                В случайных играх с неполной информацией нет (и не может быть) выигрышной стратегии. Поэтому уравнивать тут нечего.
                  –1
                  Го — абсолютно детерменирована. Как и Шашки (которые хакнуты уже полностью при 10^20. В любой момент игры при любом раскладе игры даже в середине игры компьютер вам подскажет единственный самый выгодный ход)
                  Вы правила Го почитайте, я вас прошу, потом применяйте в комментарии умное слово «детерменировано», ато вы выглядите несколько девиантно по отношению к математикам.
                    0
                    Добавлю: кто не в курсе, шашки хакнуты суперкомпьютерами года 4 назад полностью, тупым перебором всех возможных вариантов.

                    Но, до шахмат таким образом еще далеко. У шахмат 10^46 вариантов. Но… даже 10^21 это уже в десять(!) раз больше вычислений надо, чем хакнутые 10^20 шашки.
                    Представьте себе масштаб, сколько энергии надо, чтобы хакнуть шахматы полным перебором.
                      +4
                      Вы комментарий, на который отвечаете, почитайте, я ваш прошу, потом применяйте в комментарии умное словое слово «детерменировано», а то вы выглядите несколько девиантно по отношению к людям, умеющим воспринимать информацию с помощью чтения. ;)
                        –2
                        Я читаю, честно ;) обращу внимание:

                        «В детерменированных играх действительно можно построить полное дерево вариантов» — в Го это есть.

                        «В случайных играх с неполной информацией нет (и не может быть) выигрышной стратегии.» — в «Морском бое» это нет, нет случайности.

                        За исключением первых ходов может быть, да и первые ходы можно построить на основе выработанной статистики, а значит они не случайны. Это не казино.
                        (хотя строго физически казино детерменировано окружающими условиями, температурой, влажностью, изначальным положением камней/фишек/рулетки)
                          +1
                          (хотя строго физически казино детерменировано окружающими условиями, температурой, влажностью, изначальным положением камней/фишек/рулетки)
                          Да-да, а состояние нашей Вселенной в любой момент времени строго физически детерминированно её состоянием в первые секунды Большого Взрыва.
                            +1
                            Да-да, а состояние нашей Вселенной в любой момент времени строго физически детерминированно её состоянием в первые секунды Большого Взрыва.


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

                              Правда в более близком приближении там косяки со сверхсветовой скоростью расширения, что не противоречит ТО (расширяется именно пространство, а не взаимодействие материи), но приводит в азартное уныние математиков, потому-что здравая идея есть, а посчитать ее — фиг.

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

                              ...Homo-sapiens лучше так далеко не летать.
                        +1
                        Хм. Это вы мне отвечаете? Я как раз и пишу, что го — детерменирована, потому приводить ее в качестве примера для морского боя не стоит. Или вы построение моей фразы не поняли?
                        –2
                        > Вы путаете детерменированные игры с полной информацией и случайную игру с неполной информацией.
                        Поскольку размер поля в морском бое ограничен, эта игра тоже детерминированная.
                          +1
                          В покере размер колоды тоже ограничен, но игра очевидно недетерменирована :)
                        +3
                        Для такого морского боя вполне можно предусмотреть вариант, когда оба игрока ходят одновременно.
                        Т.е. оба игрока называют клетку, в которую совершают ход. Потом оба говорят результат хода соперника.
                        Повтор хода в случае успешного попадания убрать. Получаем игру именно на анализ поля противника, на умение грамотно расставлять корабли.
                          +1
                          А вообще что-то в этом есть… постараюсь реализовать программно эту игру.
                            +1
                            Согласен, такое правило добавит интригу и нивелирует недостатки.
                            Satellence, вы молодцом )) Действительно, достаточно убрать очередность ходов, и коми не нужно, в «морском бое» это прокатит, за исключением возможного уточнения правил, поскольку может получиться «ничья»
                              +4
                              Повтор модно оставить… если один из игроков попал, то в следующем ходе противник молчит… если попали оба — по прежнему одновременный ход
                                0
                                Еще в школе пробовали с другом играть в шахматы подобным образом — ход совершался одновременно (для надежности записывался на бумажке, что бы нельзя было смухлевать). Такой подход сильно меняет игру и вводит новые, неопределенные классическими правилами моменты, — например, одновременый шах, или попытка взять фигуру, которая от вас убегает этим же ходом, пришлось вводить дополнительные правила: разрешить ходить под потенциальный шах, но обязать совершать уклонение от него следующим же ходом. Хотя, конечно, наши изменения не были проверены многократными переигрываниями или сложным мат. аппаратом и возможно правила нужно модернизировать совершенно иначе под риалтайм.
                              +3
                              Первая пятерка решивших задачу определилась. Это AlexKostin, tzlom, Mrrl, Leg01as, hellman. Первый из них прислал решение через 3 часа 17 минут после публикации топика, последний — через 5 часов 3 минуты. Поздравляю!
                                +1
                                Привет, ребята. Летом прошлого года я независимо (не зная о ней ранее) придумал эту игру, и мы с коллегами ее реализовали. Играть можно в вебе, на айфоне и на андроиде.

                                battlesweeper.com/

                                Скорее всего, вам не понравится, что надо иметь логин в Фейсбуке, но нам это помогает играть с нашими друзьями :-)
                                  0
                                  Мне не понравилось то, что нельзя пометки на поле ставить (по крайней мере я не увидел, как это делать). Очень хочется не держать в голове, что клетка пуста, а пометить каким-нибудь крестиком.
                                    +1
                                    Есть планы сделать соревнования на скорость + точность, поэтому мы не стали делать такие пометки, так как скорости они помешают в случае тач-устройств. Но да, есть игроки, которые запрашивают эту фичу.
                                  –1
                                  Игру явно упростили — есть идея как компенсировать. Необходимо Добавить возможность двигать корабли, вместо выстрела сдвинуть один из кораблей на 1 квадрат, при условии что корабль не подбит и точка куда движется корабль ранее не обстреливалась.
                                    +2
                                    Это убивает основную идею — при перемещении корабля уже указанные числа будут говорить ложную информацию.
                                    Получаем обычный морской бой с возможностью двигать корабли.
                                      –1
                                      Ну тогда пусть цифры тоже меняются в зависимости от раелей последнего хода, будет больше интерактива.

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

                                  Самое читаемое