я вызывал в одну очередь.... я так понял ты имеешь ввиду проверку одинаковости генерации хеша для одинаковых позиций - тогда ,скажу, что хеширует...
нет ... не то ... увы заменил твой код на int old_hash = hash; set_hash(); int hash_buf = hash; hash = old_hash;...
так я сейчас и сделал - как ты и предсказывал , ЕСТЬ БАГИ , спасибо за идею теперь только б найти где ... у меня в проге был баг , связанный...
нашел в Crafty unsigned int Random32(void) - называется по алгоритму великого и ужасного Кнута :) - точно стоящая вещь
в тоге нашел вроде как рандомизатор int my_random(int n) { double r; ASSERT(n>0); r = double(rand()) / (double(RAND_MAX) + 1.0);...
Очевидно, что на кодирование начальной позиции (то есть самой худшей в плане оптимального кодирования позиции) потребуется 164 бита (32 пустых...
вот еще вопросик : как представить позицию для transposition tables ? в тоге видел вроде 64-битное число , вот только как оттуда считать данные...
кстати , вопрос разработчикам : используете ли вы техники экономии места в hash ( и следует ли это делать ) напр. технику кодирования Хаффмена
да рокировки там ,похоже, действительно нет ... в TSCP есть глобальная переменная fifty /// она обнуляется при взятиях и движениях пешки в...
кстати в TSCP я не видел не одного сбоя хеша ... причем компилил я сам:/ так что где-то я видимо напортачил ... весь геморрой заключается в...
2 WildCat кинь сюда код НОРМАЛЬНОГО генератора , плз ...:) int reps() { int i; int r = 0; for (i = hply - fifty; i < hply; ++i)...
пожалуйста : void init_hash() { int i, j, k; srand(0); for (i = 0; i < 2; ++i) for (j = 0; j < 6; ++j) for (k =...
1 Knps = 1000 nps (позиций в секунду) на моем Athlon 3000+ у Toga !! получается где-то 700 knps под оболочкой Fritz 9 // в Арене думаю будет больше
Мне только предстоит добавлять все это дело :) (и бессонные ночи перед отладчиком)
проверка на depth = 0 у меня в самом начале search() если true , то я вызываю Quiesce ; я просто криво прочитал твой пост :) все догнал (sorry)...
если null move вызывать на глубине 0 после ФВ , то не теряется ли сам смысл Null move как средства отсечения плохих ходов?! ведь точнее чем ФВ...
:) вот как у меня сделано : сначала search(...) -> затем на 0-ой глубине работает quiesce(...) , которая рассматривает только взятия до max_ply...
очередь хода передать не забываю :) эту процедуру я так понял надо впихнуть прямо перед вызовом quiesce (ну или ФВ другими словами)?
NS - спасибо
скажите , какие параметры чаще всего используются при вызове пустого хода ? например , я сделал 3 варианта : 1. if( depth > 2 && !follow_pv &&...