Ответы в темах
-
АвторСообщения
-
KallistoУчастник
Да тупо как-то получилось. Добавил проверку по спискам и забыл убрать удаление с доски. Видимо просто запутался при отладке.
Списков достаточно, чтобы все было правильно (так в Каллисто).
До переворачивания просто не догадалсяKallistoУчастникЧто-то одна строчка внутри фигурных скобок пропадает. Ну да ладно. И без нее понятно.
KallistoУчастникПосмотрел исходники SIDra нет там такого.
inline bool AddCaptured(int sq, Move *m, int caps)
{
for (int i = 0; icap_sq) return false;
}
m->cap_sq[caps] = sq;
m->cap_type[caps] = Board[sq];
return true;
}
Вот так добавляется новая сбитая шашка. Она с доски не убирается (раньше действительно убиралась). Просто прежде чем сбивать следующую шашку мы проверяем, что раньше ее не сбивали.
У тебя какой даты Generator.cpp? На сайте должен лежать 06.05.06 11:34.
Когда сделаешь perft?
KallistoУчастникНашел на сайте Каллисто исходники SiDra…
Там ошибки в генераторе ходов!
Хотя бы — съев шашку, вместо того чтоб поставить препятствие (через это поле больше бить/проходить нельзя) — зачем-то сразу снимается съеденная шашка с доски…Почти то же самое, что и у тебя, только у тебя переворачивается, а у меня снимается.
Видимо, у меня дамка рано или поздно сможет пройтись через уже сбитую шашку, что неправильно. Но это очень исключительный случай.
Надо будет исправить.KallistoУчастникВот результаты Каллисто на Sempron 3000+ (реальная частота 2340):
1 - 7 time: 0 speed: Infinity
2 - 49 time: 0 speed: Infinity
3 - 302 time: 0 speed: Infinity
4 - 1469 time: 0 speed: Infinity
5 - 7482 time: 0 speed: Infinity
6 - 37986 time: 0 speed: Infinity
7 - 190146 time: 16 speed: 11884 Kn / sec
8 - 929905 time: 62 speed: 14998 Kn / sec
9 - 4570667 time: 281 speed: 16266 Kn / sec
10 - 22450628 time: 1422 speed: 15788 Kn / sec
11 - 110961169 time: 7047 speed: 15746 Kn / sec
12 - 545059387 time: 34328 speed: 15878 Kn / sec
Кстати, ты прогу делай так, чтобы ее легко было пристроить к интерфейсу Каллисто. Получишь сразу несколько соперников для тестировния.
KallistoУчастникВ спорте без удачи никуда.
KallistoУчастникОК. Будет интересно.
Не подскажите как вставлять диграммы?KallistoУчастникТак этож 0x88 136!
Я перед генерацией взятий снимаю шашку (которая совершает взятия), а после ставлю обратно. Это правильно?Да.
Про 0х88 может я и пойму. Но это все равно некрасиво. Лучше сделать макрос IS_ON_BOARD(x). И сразу станет понятно что ты проверяешь.
Т.е. программы лучше делать читаемыми.KallistoУчастник// поменям шашку противникак на нашу, чтоб не взять повторно.
прикольно
if (kuda and 136)=0 then — так некрасиво (магические числа), смысл такой конструкции не очевиден
А так вроде нормально. Что ты видишь здесь неоптимального?
Как с генератором? Успел за вечер?
KallistoУчастникДа знаю я про статичтику все очень хорошо. Но так как слил две партии Plus600 на турнире Санцевича, при том имея большИе ЭБ. Это выше понимания. Любая средняя программа не делает таких ошибок в элементарных ситуациях.
KallistoУчастникhttp://www.shashki.com/PNphpBB2-viewtopic-t-536-postdays-0-postorder-dec-start-30.html
Здесь турнир Kvadrat64. Опять Plus600 показывает свою силу.
Где-то еще был большой турнир Kvadrat64.KallistoУчастникhttp://www.shashki.com/PNphpBB2-viewtopic-t-536-postdays-0-postorder-dec-start-105.html
Тут результаты турнира Санцевича. Рядом турнир letas.KallistoУчастникКоммерческие просто играют хуже бесплатных. Вот и все причины.
KallistoУчастникзначит будет. после первого же просмотра.
почему perfit, не perft?KallistoУчастниккак удалять сообщения?
-
АвторСообщения