Ответы в темах
-
АвторСообщения
-
NS
УчастникА почему бы не отобрать несколько вариантов, и жребием отобрать пару дебютов в первый день чемпионата. И по четыре партии каждая с каждой по этим двум дебютам (по две партии каждым дебютом)
NS
УчастникПо каким правилам будет чемпионат? Летающие шашки?
NS
УчастникМне кажется один стандартный протокол не все могут успеть запустить. Тогда матчи с такими программами придется «вручную» запускать. Но это уже попроще будет.
Неужели может нехватить двух месяцев, чтоб добавить поддержку протокола на шесть комманд, причем с готовой dll-кой????
NS
УчастникТочно будет недостаточно!

Каким образом определить просрочку времени?//
Я неправильно понял предыдущий пост.
Да, в менеджере нужно только проведение матча из n партий, с определением результата. (в том числе и просрочке)NS
УчастникНикогда не было никаких ограничений по силе игры. По-моему достаточно таких ограничений:
— программа должна делать ходы в соответсвии с правилами русских шашек (на шахматные чемпионаты мира допускались проги и не знавшие всех тонкостей правил)
— программа должна поддерживать выбранный для турнирна контроль времени
— программа должна поддерживать стандартный протокол обмена ходами (предлагается DamExchange)Тогда меня записывайте.
Программа называется «Скифи»NS
УчастникПрограмма изначально будет поддерживать протокол Каллисто, так что силу примерно оценить возможность будет.
NS
УчастникЕсли есть ограничения по силе — то есно их нужно формализовывать.

NS
УчастникРеальными участниками могут стать Аврора, Plus600, Tundra, Tornado, Damira, Kallisto… Кто еще?
А в какую силу программа должна играть?
Я начал писать программу, скоро появится первая играющая версия.
И когда будет проводится чемпионат?NS
УчастникЯ по почте напишу.

В форуме приведу результаты скорости на начальной позиции, и на позиции шесть дамок против шести дамок (на Дамках ускорение должно быть намного сильнее)NS
УчастникЯ изобрел-что-то или это было известно до меня?
//
Что проверку на наличие взятий можно сделать вместе с генерацией ходов, и причем в двух варинатах — при ОДНОРАЗОВОМ обращении к каждому полю доски (но замедляя make/unmake), либо в два прохода, не замедляя make/unmake (во втором случае так-же быстро определяется факт наличия взятий Дамки)?NS
УчастникОК. Попробую сделать 32-битный бибоард.

NS
УчастникВ шахматах — один раз написал и больше не трогал. Только сортировки добавлял. Perft не пробовал (в шахматах)
Насчет БитБоардов в шашках думал — Надо 64-мя битами представлять, иначе очень неудобно.NS
Участникprocedure perft(depth:byte);
var i:byte;mov:moves;
Begin
for i:=1 to genmove(mov) do
Begin
MakeMove(mov,i);
if depth=1 then kol:=kol+1 else perft(depth-1);
UnMakeMove(Mov,i);
end;
end;8 929905 489 1901
Надо переписывать.
NS
УчастникСейчас начинаю делать. То есть — где-то через два часа будет готов.
(пока неоптимизированный)NS
УчастникНе получилось плотно посидеть.
Но мой 0x88 из-за большого количества условий (плюс из за этого что вместо одного массива структур сделал структуру массивов)
в начальной позиции делает 1000000 генераций (7000000) Ходов, Без Make/Unmake за 1980 мс. меньше 3500000 позиций в секунду.
Однозначно нужно переписывать. Perft запускать не стал (Генератор за одну сторону, только за белых)Маленький Тест показал, что 16×16 будет быстрее (чем 0х88).
Плюс — вызов рекурсивной процедуры лучше делать когда уже взятие точно есть — (то есть саму возможность взятия определять в нерекурсивной (основной) процедуре, а продолжать взятие — в рекурсивной) И нужно поменять структуру хранениия списка ходов. -
АвторСообщения