Ответы в темах
-
АвторСообщения
-
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;Вот такая вспомогательная функция получилась для генерации взятий простой… Или это очень неоптимально? (все переменные модуля компилятор хранит в регистрах)
ЗЫ. Прошу извинить за такое название переменных — но мне так удобней.NSУчастникСтранная ситуация в мире шашечного программирования…
В шахматах — пожалуйста, универсальные протоколы.
Подключаешь, проводишь серию матчей — и всё становится понятно.
По каким причинам можно отказаться от добавления в коммерческую программу универсального протокола?Вы действительно, не понимаете причину? Она очень просто — количество играющих в эти две игры ОЧЕНЬ различается.
Ну это ведь не мешает разработчику добавить поддержку например протола Каллисто…
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
Зачем понапрасну раширять дерево перебора,
И смотреть четыре одинаковых хода?
А если позиции после этого хода нет в хеше?NSУчастникТурнир Санцевича…
Яндекс по этим ключевым словам вообще ничего не находит.
Есть ссылка на турнир?NSУчастникСтранная ситуация в мире шашечного программирования…
В шахматах — пожалуйста, универсальные протоколы.
Подключаешь, проводишь серию матчей — и всё становится понятно.
По каким причинам можно отказаться от добавления в коммерческую программу универсального протокола?NSУчастникАврора считает, что дамкой a1 можно сбить простые b2 и g7 4-мя способами.
У меня один способ.NSУчастникЯ конечно идиот, но я уже час мучаюсь, как бы их (одинаковые) исключить, и притом быстро )))
Написал генератор (0x88) Сейчас передохну, и начну пробовать perfit.NSУчастник10 — 22450628
хмм… у меня — 22 450 647
Похоже что одинаковые взятия, но при разном порядке снятия шашек с доски — считаются за действительно разные взятия…
NSУчастникТак есть же правило 15-ти ходов.
NSУчастникСпасибо, нашел на Гамблере.
Какая-то очень странная формулировка —
1.9.1.2. При невозможности выигрыша ни одного из соперников;
А кто определяет возможность или невозможность выигрыша?
Или для программ этот пункт обычно не учитывают?NSУчастникТо есть коммерческие программы в турнире всё-таки будут участвовать?
NSУчастникЯ насколько помню их немного меняли…
Не подскажете какие они сейчас?NSУчастникПравила игры — при бое через дамочное поле простая ВСЕГДА превращается в дамку (и если может продолжить бой, то обязана это сделать), побитые шашки снимаются с доски только после окончания боя (турецкий удар), одну и ту-же шашку можно побить (перепрыгнуть чрез неё) только один раз. Больше отличий от других видов шашек нет?
Поражение — когда у стороны не осталось шашек, либо нет ходов.
Всё правильно?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%Короче понятно, что как раз с точки зрения статистики — новая версия очень убедительно играет сильнее….
-
АвторСообщения