Конференция "Игры" » Морской бой
 
  • antonn © (05.01.09 01:25) [20]
    ну "маски" - я про копию поля боя только во временном массиве, где помечены невалидные ячейки (а их больше, чем на "боевом" поле) :)


    > Knight ©   (05.01.09 01:03) [18]

    очень похоже я когда то делал крестики-нолики на большом поле, почти такая же структура, только вместо массивов 4 стринггрида, куча мемо (я не умел делать массивы с числами, и tstrings тоже не умел :)), и все это крутилось в них, только все они были visible:=false :) Почему то вот напомнило :)
  • Knight © (05.01.09 01:33) [21]
    Сейчас такой массив весовых коэф.
    Может можно ещё оптимизировать? :)


    0 2 0 2 0 0 2 0 2 0
    2 3 0 0 3 0 0 0 3 2
    0 0 4 0 0 4 0 4 0 0
    2 0 0 4 0 0 4 0 0 2
    0 0 4 0 4 0 0 4 0 0
    0 3 0 0 0 4 0 0 3 0
    2 0 0 4 0 0 4 0 0 2
    0 0 4 0 0 4 0 4 0 0
    2 3 0 0 3 0 0 0 3 2
    0 2 0 2 0 0 2 0 2 0

  • Putnik © (05.01.09 17:51) [22]
    У Мартина Гарднера в одной из его книг - рассматривалась оптимальная стратегия для "Морского боя" и она очень похода на совет
    @!!ex  из  [12] .
  • Knight © (05.01.09 23:20) [23]
    А что за "анализ положения кораблей"?
  • Putnik © (06.01.09 19:02) [24]
    Постараюсь описать вкратце.
    1) Ловим 4-х палубный корабль, для этого обстреливаем поле через каждые 3 клетки

    0*000*000*
    00*000*000
    000*000*00
    *000*000*0
    0*000*000*
    00*000*000
    000*000*00
    *000*000*0
    0*000*000*
    00*000*000

    * - место потенциального выстрела, т.о. через 25 выстрелов мы вычислим гле находится флагман(только в книге по-моему чуть сдвинута эта сетка и получается 24 выстрела)

    Каждая из этих 25 звездочек выбирается рандомно, если попадаем на менее значимый корабль добиваем его.
    После "убийства" флагмана также ловим трехпалубные:

    0*00*00*00
    00*00*00*0
    *00*00*00*
    0*00*00*00
    00*00*00*0
    *00*00*00*
    0*00*00*00
    00*00*00*0
    *00*00*00*
    0*00*00*00

    Как то так, насколько я помню оптимальный алгоритм.
  • @!!ex © (06.01.09 20:01) [25]
    > [24] Putnik ©   (06.01.09 19:02)

    Проблема этого алгоритма в том, что зная его легко компа обдурить. Вернее не обдурить, но сильно уменьшить его эффективность. Например однопалубные ставить так, чтобы они никогда не попадали под выстрелы. двух палубные ставить так, чтобы они не попадались при охоте на 4 палубный.
    Поэтому старый добрый рандо всеже рулит. :)
  • Putnik © (06.01.09 20:11) [26]
    2 @!!ex ©   (06.01.09 20:01) [25]
    Я могу быть неправ, но таких видов таких сеток с минимальным числом выстрелов для поимки каждого вида корабля совсем не одна(для 4-х палубного, точно помню по Гарднеру, -  2, не считая зеркальных отражений, для 2-х и трехпалубных должно быть также). Каким видом сетки ловить определять рандомом, поэтому он и рулит)) А однопалубные так и так придется рандомно ловить))
  • Knight © (07.01.09 01:02) [27]

    > Putnik ©   (06.01.09 19:02) [24]

    Я бы не назвал это анализом... анализ это когда пользователь расставляет корабли по периметру поля (или в один угол, или по углам, или в центре и т.п.), пару одноклеточных бросает на открытое пространство, а комп, найдя лишь один корабль - убивает их все, "предположив", что они находятся там же, после чего начинает искать одноклеточные, так же анализируя взаимное расположение кораблей. Т.е. анализ - это не что-то однотипно предопределённое, это гибкая система с использованием хоть любых систем хоть по Фрейду или Юнгу, по звёздам или Фен-Шую :)

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

    Вот с этим напряг %)
  • {RASkov} © (07.01.09 02:12) [28]
    > У человека с этим делом проще, интуиция - мощная штука...
    > модет срубить почти все корабли (включая однопалубные) при
    > любой расстановке без промахов %)

    Не поверю :) Один раз - повезло.
    Но чтоб каждый раз эта интуиция работала - так не бывает)
  • KilkennyCat © (07.01.09 08:16) [29]

    > {RASkov} ©   (07.01.09 02:12) [28]


    просто берешь снаряд размером 10x10...

    а вообще, про вероятность подания снаряда в какое-то место на поле очень хорошо Almaz рассказывал...
  • Putnik © (07.01.09 11:23) [30]
    2 Knight ©   (07.01.09 01:02) [27]
    Я и не называл это анализом, просто описал оптимальный алгоритм.
    Если я расположу "абсолютно случайно" все корабли, интуиция наверное даст сбой.

    >модет срубить почти все корабли (включая однопалубные) при любой >расстановке без промахов
    Тогда придется подсматривать, чтобы воссоздать такую интицию)
  • Дуб © (08.01.09 07:45) [31]

    > Поэтому старый добрый рандо всеже рулит. :)

    Тут тоже вопросы бывают. Допустим у нас только однопалубники и стоят как угодно - соприкасаясь и т.п. Каков алгоритм случайных выстрелов или расстановок?

    Часто ппредлагают с виду простые и правдоподобные алгоритмы, которые тем не меннее допукают наличие выигрышной стратегии у противника.
  • Knight © (08.01.09 15:55) [32]

    >  Допустим у нас только однопалубники

    С "допустим" - начинают только математики :)
  • Дуб © (09.01.09 05:45) [33]
    > Knight ©   (08.01.09 15:55) [32]

    Так тут везде - сплошная математика. :) Однопалубники нужны для постановк и начального понимания проблемы. :)

    Задача не такая праздная, кстати. Грубо можно так(одному на собеседовании в Сингапуре так и дали) - перемешать массив из миллиона чисел.(у Кнута есть ответ - очень простой, но если без него). Я такую задачку решал 20 лет назад - как раз при проектировании Морского боя.
  • Knight © (09.01.09 20:26) [34]
    А может кто-нить на примере морского боя привести пример нейронной сети и принципа её обучения? %)
  • @!!ex © (09.01.09 23:01) [35]
    > [34] Knight ©   (09.01.09 20:26)

    нах НС в морском бое?
  • Knight © (09.01.09 23:17) [36]
    А фх знает... думал, мож она думать будет.. и обучаться :))
  • @!!ex © (10.01.09 00:46) [37]
    > [36] Knight ©   (09.01.09 23:17)

    не получится. не обучится.
    Можно попробовать, но далеко от тупого рандома не уйдет.
  • KilkennyCat © (10.01.09 06:02) [38]

    > далеко от тупого рандома не уйдет.

    тупая - да. а умная и обучающаяся нейросеть быстро придет к выводу, что проще подглядывать :)
  • aleks (18.02.09 16:23) [39]
    Удалено модератором
    Примечание: Мы все скорбим.
 
Конференция "Игры" » Морской бой
Есть новые Нет новых   [134430   +3][b:0][p:0.001]