NS

Ответы в темах

Просмотр 15 сообщений - с 631 по 645 (из 662 всего)
  • Автор
    Сообщения
  • NS
    Участник

    Function addmove(izot:byte;otkuda:byte;nap:shortint;var cap:capture;var mov:moves):Byte;
    var kuda,kuda1,kolvz,nomMoves,i:byte;
    Begin
    kolvz:=0;
    kuda:=otkuda+nap;
    if (kuda and 136)=0 then
    if pole[kuda]<0 then
    Begin
    kuda1:=kuda+nap;
    if (kuda1 and 136)=0 then
    if pole[kuda1]=0 then
    if kuda1<112 then
    Begin
    // взятие
    pole[kuda]:=-pole[kuda];
    // поменям шашку противникак на нашу, чтоб не взять повторно.
    cap[0]:=cap[0]+1;
    cap[cap[0]]:=kuda;
    kolvz:=kolvz+addmove(izot,kuda1,15,cap,mov);
    kolvz:=kolvz+addmove(izot,kuda1,-15,cap,mov);
    kolvz:=kolvz+addmove(izot,kuda1,17,cap,mov);
    kolvz:=kolvz+addmove(izot,kuda1,-17,cap,mov);
    pole[kuda]:=-pole[kuda];
    if kolvz=0 then
    Begin
    kolvz:=1;
    NomMoves:=mov.kolMoves+1;
    mov.kolMoves:=NomMoves;
    mov.moveOt[NomMoves]:=izot;
    mov.moveKu[NomMoves]:=kuda1;
    mov.dam[NomMoves]:=false;
    mov.Vzatie:=true;
    for i:=0 to cap[0] do mov.Cap[NomMoves]:=cap;
    end;
    cap[0]:=cap[0]-1;
    end
    Else
    Begin
    // взятие с превращением
    pole[kuda]:=-pole[kuda];
    cap[0]:=cap[0]+1;
    cap[cap[0]]:=kuda;
    kolvz:=kolvz+addmoveD(izot,kuda1,15,cap,mov);
    kolvz:=kolvz+addmoveD(izot,kuda1,-15,cap,mov);
    kolvz:=kolvz+addmoveD(izot,kuda1,17,cap,mov);
    kolvz:=kolvz+addmoveD(izot,kuda1,-17,cap,mov);
    pole[kuda]:=-pole[kuda];
    if kolvz=0 then
    Begin
    kolvz:=1;
    NomMoves:=mov.kolMoves+1;
    mov.kolMoves:=NomMoves;
    mov.moveOt[NomMoves]:=izot;
    mov.moveKu[NomMoves]:=kuda1;
    mov.dam[NomMoves]:=True;
    mov.Vzatie:=true;
    for i:=0 to cap[0] do mov.Cap[NomMoves]
    :=cap;
    end;
    cap[0]:=cap[0]-1;
    end;
    end;
    addmove:=kolvz;
    end;

    Вот такая вспомогательная функция получилась для генерации взятий простой… Или это очень неоптимально? (все переменные модуля компилятор хранит в регистрах)
    ЗЫ. Прошу извинить за такое название переменных — но мне так удобней. :)

    в ответ на: Обсуждение шашечных программ #365865
    NS
    Участник

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

    Вы действительно, не понимаете причину? Она очень просто — количество играющих в эти две игры ОЧЕНЬ различается.

    Ну это ведь не мешает разработчику добавить поддержку например протола Каллисто…

    в ответ на: Обсуждение шашечных программ #365861
    NS
    Участник

    По каким причинам можно отказаться от добавления в коммерческую программу универсального протокола?

    А чем некоммерческие программы не устраивают?
    Есть протоколы checkersboard, есть Kallisto. Аврора позволяет подключать движки по обоим протоколам и устраивать матчи в любом сочетании. Есть DamExchange в конце концов.

    То есть как?
    Я говорю, что ИМХО в коммерческих программах эта возможность должна быть обязательно, а вы мне о некоммерческих… :)
    Я могу подключить к некоммерческой оболочке любой коммерческий движок?

    NS
    Участник

    skoree vsego Avrora zapisivayet xod kak: a1xc3xh8 ili a1xd4xh8 … nu i tak dalee. Voobshe-to pravilno, ved dobav chernim eshe jdnu shahku na b6, i togda mozhno a1xd4xa7 😆

    Kazhdy programmiruyet po svoemu

    Зачем понапрасну раширять дерево перебора,
    И смотреть четыре одинаковых хода?
    А если позиции после этого хода нет в хеше?

    в ответ на: Обсуждение шашечных программ #365857
    NS
    Участник

    Турнир Санцевича…
    Яндекс по этим ключевым словам вообще ничего не находит.
    Есть ссылка на турнир?

    в ответ на: Обсуждение шашечных программ #365856
    NS
    Участник

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

    NS
    Участник

    Аврора считает, что дамкой a1 можно сбить простые b2 и g7 4-мя способами.
    У меня один способ.

    NS
    Участник

    Я конечно идиот, но я уже час мучаюсь, как бы их (одинаковые) исключить, и притом быстро :))))
    Написал генератор (0x88) Сейчас передохну, и начну пробовать perfit.

    NS
    Участник

    10 — 22450628

    хмм… у меня — 22 450 647 :?

    Похоже что одинаковые взятия, но при разном порядке снятия шашек с доски — считаются за действительно разные взятия…

    в ответ на: Алгоритмы шашечных программ #365773
    NS
    Участник

    Так есть же правило 15-ти ходов. :)

    в ответ на: Алгоритмы шашечных программ #365771
    NS
    Участник

    Спасибо, нашел на Гамблере.
    Какая-то очень странная формулировка —
    1.9.1.2. При невозможности выигрыша ни одного из соперников;
    А кто определяет возможность или невозможность выигрыша?
    Или для программ этот пункт обычно не учитывают?

    в ответ на: Обсуждение шашечных программ #365833
    NS
    Участник

    То есть коммерческие программы в турнире всё-таки будут участвовать?

    в ответ на: Алгоритмы шашечных программ #365769
    NS
    Участник

    Я насколько помню их немного меняли…
    Не подскажете какие они сейчас?

    в ответ на: Алгоритмы шашечных программ #365767
    NS
    Участник

    Правила игры — при бое через дамочное поле простая ВСЕГДА превращается в дамку (и если может продолжить бой, то обязана это сделать), побитые шашки снимаются с доски только после окончания боя (турецкий удар), одну и ту-же шашку можно побить (перепрыгнуть чрез неё) только один раз. Больше отличий от других видов шашек нет?
    Поражение — когда у стороны не осталось шашек, либо нет ходов.
    Всё правильно?

    в ответ на: Открылся сайт Каллисто #364134
    NS
    Участник

    NS
    Я так и не понял, что ты этой таблицей хотел сказать.

    У нас была задача определить явл. ли победивший движок более сильным. Тогда можно твой подход применить так:
    Предполагаем крайний случай, т.е. что они равны. И проверяем насколько вероятно, что между двумя равными движками случится такой результат в пользу первого. Если это маловероятно, то значит первый движок сильнее.

    При вероятностях 58/922, 806/922,58/922 —

     437.0        0.000%       0.001%     100.000%
    437.5 0.000% 0.001% 99.999%
    438.0 0.000% 0.001% 99.999%
    438.5 0.001% 0.002% 99.999%
    439.0 0.001% 0.003% 99.998%
    439.5 0.001% 0.004% 99.997%
    440.0 0.002% 0.006% 99.996%
    440.5 0.003% 0.009% 99.994%
    441.0 0.004% 0.013% 99.991%
    441.5 0.005% 0.018% 99.987%
    442.0 0.007% 0.025% 99.982%
    442.5 0.010% 0.036% 99.975%
    443.0 0.014% 0.050% 99.964%
    443.5 0.019% 0.069% 99.950%
    444.0 0.026% 0.095% 99.931%
    444.5 0.034% 0.129% 99.905%
    445.0 0.045% 0.174% 99.871%
    445.5 0.059% 0.233% 99.826%
    446.0 0.077% 0.310% 99.767%
    446.5 0.099% 0.409% 99.690%
    447.0 0.126% 0.535% 99.591%
    447.5 0.160% 0.695% 99.465%
    448.0 0.201% 0.896% 99.305%
    448.5 0.250% 1.147% 99.104%
    449.0 0.309% 1.456% 98.853%
    449.5 0.379% 1.835% 98.544%
    450.0 0.459% 2.294% 98.165%
    450.5 0.553% 2.847% 97.706%
    451.0 0.660% 3.507% 97.153%
    451.5 0.780% 4.287% 96.493%
    452.0 0.915% 5.202% 95.713%
    452.5 1.064% 6.267% 94.798%
    453.0 1.227% 7.494% 93.733%
    453.5 1.403% 8.897% 92.506%
    454.0 1.590% 10.487% 91.103%
    454.5 1.786% 12.273% 89.513%
    455.0 1.990% 14.263% 87.727%
    455.5 2.198% 16.461% 85.737%
    456.0 2.406% 18.867% 83.539%
    456.5 2.612% 21.479% 81.133%
    457.0 2.811% 24.290% 78.521%
    457.5 2.999% 27.289% 75.710%
    458.0 3.173% 30.462% 72.711%
    458.5 3.327% 33.789% 69.538%
    459.0 3.459% 37.248% 66.211%
    459.5 3.565% 40.813% 62.752%
    460.0 3.643% 44.456% 59.187%
    460.5 3.691% 48.147% 55.544%
    461.0 3.707% 51.853% 51.853%
    461.5 3.691% 55.544% 48.147%
    462.0 3.643% 59.187% 44.456%
    462.5 3.565% 62.752% 40.813%
    463.0 3.459% 66.211% 37.248%
    463.5 3.327% 69.538% 33.789%
    464.0 3.173% 72.711% 30.462%
    464.5 2.999% 75.710% 27.289%
    465.0 2.811% 78.521% 24.290%
    465.5 2.612% 81.133% 21.479%
    466.0 2.406% 83.539% 18.867%
    466.5 2.198% 85.737% 16.461%
    467.0 1.990% 87.727% 14.263%
    467.5 1.786% 89.513% 12.273%
    468.0 1.590% 91.103% 10.487%
    468.5 1.403% 92.506% 8.897%
    469.0 1.227% 93.733% 7.494%
    469.5 1.064% 94.798% 6.267%
    470.0 0.915% 95.713% 5.202%
    470.5 0.780% 96.493% 4.287%
    471.0 0.660% 97.153% 3.507%
    471.5 0.553% 97.706% 2.847%
    472.0 0.459% 98.165% 2.294%
    472.5 0.379% 98.544% 1.835%
    473.0 0.309% 98.853% 1.456%
    473.5 0.250% 99.104% 1.147%
    474.0 0.201% 99.305% 0.896%
    474.5 0.160% 99.465% 0.695%
    475.0 0.126% 99.591% 0.535%
    475.5 0.099% 99.690% 0.409%
    476.0 0.077% 99.767% 0.310%
    476.5 0.059% 99.826% 0.233%
    477.0 0.045% 99.871% 0.174%
    477.5 0.034% 99.905% 0.129%
    478.0 0.026% 99.931% 0.095%
    478.5 0.019% 99.950% 0.069%
    479.0 0.014% 99.964% 0.050%
    479.5 0.010% 99.975% 0.036%
    480.0 0.007% 99.982% 0.025%
    480.5 0.005% 99.987% 0.018%
    481.0 0.004% 99.991% 0.013%
    481.5 0.003% 99.994% 0.009%
    482.0 0.002% 99.996% 0.006%
    482.5 0.001% 99.997% 0.004%
    483.0 0.001% 99.998% 0.003%
    483.5 0.001% 99.999% 0.002%
    484.0 0.000% 99.999% 0.001%
    484.5 0.000% 99.999% 0.001%
    485.0 0.000% 100.000% 0.001%

    Вероятность набрать 482 очка и более — 0.006%
    Так что можно сказать что играет сильнее с вероятностью 99.994%

    Короче понятно, что как раз с точки зрения статистики — новая версия очень убедительно играет сильнее….

Просмотр 15 сообщений - с 631 по 645 (из 662 всего)