Форум » » IPPOLIT & ROBBOLITO » Ответить

IPPOLIT & ROBBOLITO

Bison: Предлагаю обсудить особенности устройства Ипполита. Все-таки некаждый день появляются сильнейшие opensource программы.

Ответов - 251, стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 All

NS: А при чем тут х? в коде вся информация есть. х Действительно uint64. И будет переполнение.

hardcore: Мда... Непросто все с компилятором. Подскажите пожалуйста к чему в Иппо структура type_dynamics? Ведь для хеширования есть type_hash_variated. И что за 32хбитные _7, _9, _0...? Причем первой структуры наинициализировано 16384 экземпляра, а второй, сложной, 1024.

bankuss: UINT8 golo () { static int init = 0, is_pipe; static HANDLE stdin_h; DWORD val; if (stdin->_cnt > 0) return 1; if (!init) { init = 1; stdin_h = GetStdHandle (STD_INPUT_HANDLE); is_pipe = !GetConsoleMode (stdin_h, &val); if (!is_pipe) { SetConsoleMode (stdin_h, val & ~(ENABLE_MOUSE_INPUT | ENABLE_WINDOW_INPUT)); FlushConsoleInputBuffer (stdin_h); } } if (is_pipe) { if (!PeekNamedPipe (stdin_h, NULL, 0, NULL, &val, NULL)) return 1; return val > 0; } else { GetNumberOfConsoleInputEvents (stdin_h, &val); return val > 1; } return 0; } это ипполитовский ввод


bankuss: bool input_available() { static bool init = false, is_pipe; static HANDLE stdin_h; DWORD val, error; // val = 0; // needed to make the compiler happy? // have a look at the "local" buffer first, *this time before init (no idea if it helps)* if (UseDebug && !init) printf("info string init=%d stdin->_cnt=%d\n",int(init),stdin->_cnt); if (stdin->_cnt > 0) return true; // HACK: assumes FILE internals // input init (only done once) if (!init) { init = true; stdin_h = GetStdHandle(STD_INPUT_HANDLE); if (UseDebug && (stdin_h == NULL || stdin_h == INVALID_HANDLE_VALUE)) { error = GetLastError(); printf("info string GetStdHandle() failed, error=%d\n",error); } is_pipe = !GetConsoleMode(stdin_h,&val); // HACK: assumes pipe on failure if (UseDebug) printf("info string init=%d is_pipe=%d\n",int(init),int(is_pipe)); if (UseDebug && is_pipe) { // GetConsoleMode() failed, everybody assumes pipe then error = GetLastError(); printf("info string GetConsoleMode() failed, error=%d\n",error); } if (!is_pipe) { SetConsoleMode(stdin_h,val&~(ENABLE_MOUSE_INPUT|ENABLE_WINDOW_INPUT)); FlushConsoleInputBuffer(stdin_h); // no idea if we can lose data doing this } } это фруктовый

kranium: hi bankuss, and everyone- i have completed translation of the 0.085c3 source code from Italian to common English programming terms... i'd be happy to share it with you if you are interested...(much easier to follow if one doesn't speak Italian well) i will begin soon to concentrate on SMP... perhaps we can begin to work together for further development... are you interested? best regards- kranium

Einstein UCI: Hi Kranium ! They are any way to fix the time management in IPPOLIT & RobboLito ? Would be nice ! All the best,

bankuss: kranium excellent! I also began to English translate, but made little

Azaad: Einstein UCI writes: They are any way to fix the time management in IPPOLIT & RobboLito ? Would be nice ! Einstein UCI Try version 0.085d1

17: Вот еще одно мнение! Denis P. Mendoza http://www.computerchess.info/tdbb/phpBB3/viewtopic.php?f=9&t=427 Re: What's this engine ? by Denis P. Mendoza on Thu Oct 29, 2009 12:22 pm Like you, I'm only good in another filed, so I let them gossip among themselves in third person mode . I still have no work at the moment (waiting for another mission), so i just scan the net on what interests me - like the links you mentioned. My opinions are too trivial for the experts in those forums. I'm a practical guy and I only involve myself to the level my brains can handle . In the first place, I like IPPOLIT and ROBBOLITO same as Protector - open source stuffs...period! Whether we like it or not (good or bad), these works of Yakov, Igor, Vladimir, Roberto, Yusuf, and the rest of the other supporters will revolutionize the next set of engines in the future. Crafty, Fruit, Glaurung and Strelka had started it before. Nice job comrades!....as they say in Red Alert (game)....For the UNION! I think Vas will just shrug this "clone" talks aside and just move on in his Rybka cluster experiments. That is more important, as still some chronic chess activists are using this issue to rekindle the case about Rybka being a Fruit clone, hiding true nps, etc. It's sounds like a broken record. Let's move on and enjoy the fruits of computerchess.

kranium: hi bankuss- http://www.chesslogik.com/ complete english translation seems to be working well....needs much more testing Engine Score 1: RobboLite_0085c4_0050 10.0/15 2: Rybka 3 w32 5.0/15 0=0==000==01=== no time losses in many games...not sure if my time fix is 100% though, must be tested further... please make the source code for 0.085d1 available... perhaps in future, all source can be available in one location http://rapidshare.com/files/299614816/RobboLite_0085c5.rar.html thanks to all, bankuss, NS, Wildcat, дуп, Einstein UCI, ThinkingAlot, Osipov, and anyone else contributing...

bankuss: kranium пишет: please make the source code for 0.085d1 available... perhaps in future, all source can be available in one location vers C --> vers D: changes in value.c #define white_minor_stone (8<<2) #define black_minor_stone (16<<2)

kranium: bankuss пишет: #define white_minor_stone (8<<2) #define black_minor_stone (16<<2) but- this is a time loss fix? it has nothing to do with time management...or am i mising something?

никел: This is extracted from the bugs topic on Ippolit site Bugs Location for workers to deposit bugs. Current The current version 0.085d has had no reported bugs. Update: nodes appear negative beyond 2^31..... info time 1075380 nodes -2145685551 nps 1998000 cpuload 999 Looks like sorvegliare.c has a TRASMISSIONE with %d rather than %lld in notizia Fixed RobboLito 0.085: Failings with captures (cattura) for Robbo_glue.c: fixed (Igor). RobboLito 0.085b: Igor's "fix" was unfunctional. Fixes correctly, I hope (RP). RobboLito 0.085c: Changed recurse in RobboBuild (failed with BPb). RobboLito 0.085c2: Previous fix (Igor) for lazy failed. New with valu.c: #define bianco_minore_pietra (8<<2) #define nero_minore_pietra (16<<2) Previous: decimating the double sinister shuffle.

NS: Банкусс, нафига бало городить весь этот огород, если достаточно было закомментить // if (stdin->_cnt > 0) // return 1; За ненадобностью, и добавить в случае консольного ввода условие на GetNumberOfConsoleInputEvents(stdin_h, &count); if (count && PeekConsoleInputA(stdin_h...

bankuss: NS это фабьен городил, а не я. просто для примера привел код фрукта.

NS: Я к тому что нет никакого смысла вставлять фруктовый код в Робболита.

дуп: char * mossa_notazione (uint32 mossa, char *M) { int di, ai, pr; char c[8] = "0123nbrq"; В массиве "с" не маловато ли будет 8 элементов?

bankuss: дуп пишет: ar c[8] = "0123nbrq"; В массиве "с" не маловато ли будет 8 элементов? присваивается именно 8, а что не так?

дуп: В строке "0123nbrq" девять символов. Девятый tipo по умолчанию '\0'. Если поменять расширение на "cpp" не скомпилируется. Компилятор выдаст ошибку "overflow" в этом месте. Хотя может тут это и не важно.

Osipov: В этой функции символ конца строки не используется, так что можно на обращать внимания. Между прочим, я смотрю большие проблемы вызвало распределение времени в этом странном движке. Если кому интересно, попробуйте это дело от Рыбки 3: void time_manager(int time, int inc, char flag_togo, int movestogo) { int alloc; TimeMax = (time - 2500) * 9 / 10; if (TimeMax < 150) TimeMax = 150; if (flag_togo) { TimeLimit2 = ((movestogo + 2) * TimeMax) / (movestogo * 3); alloc = ((TimeMax / movestogo) * (movestogo + 150) * 2) / 300; if (inc > 0) alloc += inc; } else { if (inc == 0) { TimeLimit2 = TimeMax / 6; alloc = TimeMax / 48; } else { TimeLimit2 = TimeMax / 3; if ((inc * 60) >= time) alloc = TimeMax / 30; else alloc = TimeMax / (((time / 60) * 48 - inc * 18) / (time / 60)); if (inc > 0) alloc += inc; } } TimeLimit1 = alloc; if (TimeLimit1 > TimeMax) TimeLimit1 = TimeMax; if (TimeLimit1 > TimeLimit2) TimeLimit1 = TimeLimit2; }



полная версия страницы