Ответы в темах
-
АвторСообщения
-
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).
Плюс — вызов рекурсивной процедуры лучше делать когда уже взятие точно есть — (то есть саму возможность взятия определять в нерекурсивной (основной) процедуре, а продолжать взятие — в рекурсивной) И нужно поменять структуру хранениия списка ходов. -
АвторСообщения