Наш новый движок Strelka!!!

Тема в разделе "Машинное отделение", создана пользователем SDChess, 5 май 2007.

  1. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Наоборот. Первая задача не под силу никому, и имитация (подстройка ОФ и переборных алгоритмов) - не такая уж и сложная задача. Хотя если на вашей планете средний IQ равен 4000, то возможно у вас второкурсники легко могут разобрать дизасемблированный код Рыбки :)
  2. Pia Учаcтник

    • Участник
    Рег.:
    11.06.2007
    Сообщения:
    537
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Чтобы там не говорил NS, я думаю, новая Рыбка выйдет со специальной защитой от дизассембляции:p
  3. syrdon Учаcтник

    • Участник
    Рег.:
    21.05.2007
    Сообщения:
    78
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    ОК. Тюнинг ОФ вполне возможен, никто не спорит, да только ОФ у Рыбки не решающая.

    Без поиска всё это не поможет.

    Да, и Рыбка ОФ кому попало не дает. Только ОФ позиции на конце урэзанного главного варианта.
    Т.е. чтобы получить значение ОФ в чистом виде уже надо лесть внутрь.

    Дальше, да, линейная оптимизация например весов Фрукта. И PieceSquareTable выдрать, если уж пришли. А дальше (Фрэйд краснеет), если уж вошли... Почему не поковыряться? Есть же инструментарий!

    А, вообще...
    Мое личное мнение:
    Если Стрелок останавливается на достигнутом, то он получает булочку с полочки за мастерство хакера. И фсё.
    Если Стрелок раскроет исходники, то безусловно обогатит соёбщество.
    Если Стрелок будет самостоятельно (без имитации ;) /дизассемблирования) развивать Стрелку, то он молодец, и мы за него будем болеть.
  4. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    syrdon, еще раз прочитайте что я написал. Чтоб использовать корреляционный анализ не нужна ОФ, а нужны хорошие значения оценки конкретных позиций.
    И наверно не надо мусорить тут мнениями на уровне "второго курса любого вуза".

    И на всякий случай - по поводу всех ваших "если". Исходники Стрелки досупны многим ведущим шахматным разработчикам. И все обладатели исходников говорят что Стрелка не клон.
  5. syrdon Учаcтник

    • Участник
    Рег.:
    21.05.2007
    Сообщения:
    78
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Сколько хороших оценок Вам нужно, чтобы подогнать под Рыбу?
    Вы говорите об оценке из поиска?
    Не могли бы Вы описать пространство в котором мы оптимизируем?

    Далеко не любой, и не любого ВУЗа. Толковый студент после 2 семестров ассемблера, вооруженный IDA Pro и RecStudio, думаю, справился бы. Тотализатор на специально отобранного студента устраивать пока не будем, но мысль интересная. :)

    Это только мои "если".
    Эти ребята могли сравнить их с Рыбкой? Если да, и была установлена существенная разница, то я дико извиняюсь перед Стрелком. Если же просто показан факт наличия чистых исходников, то это не говорит ни о чём.

    Поймите, я не утверждаю, что Стрелка клон, я просто не могу принять утверждения:
    * Декомпиляция невозможна или слишком трудоёмка
    * Анализ Рыбки как черного ящика т.е. не лазя внутрь легче.

    К тому же я фиговый математик. Я допускаю, что математику второй путь ближе, и хотел бы выслушать подробности (получить ссылки) на конкретные действия.

    С уважением

    Сырдон
  6. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Какая разница сколько? Допустим миллион позиций, на каждой запускаем Рыбу на секунду - Для получения оценок хватит пары недель.

    Потом - берем свою ОФ (линейную!) Допустим на 1000 признаков. (вместе с PST) - так как она линейна - легко находим приближение методом наименьших квадратов (Для этого нужно всего-лишь решить систему уравнений на 1000 неизвестных). Всё, веса получены.

    Конечно интересно, но например ведущие программисты на TalkChess и тут утверждают что такое невозможно. Вы предполагаете что возможно (при этом не имея ни опыта разбора такого объема кода, ни опыта написния движков), а я утверждаю что невозможно - имея и опыт разработки, и опыт чтения хорошо прокомментированных исходников. Например достаточно тяжело разобрать код Крафти - но он написан на СИ! Содержит достаточно хорошие комментарии, все переменные и методы имеют осмысленные названия и т.д. В откомпилированном коде ничего этого нет.
    А конкурсов было уже достаочно много - один из сотни способен за несколько недель разобрать сотни строк промежуточного кода. А тут речь идет о сотнях тысяч строк скомпилиронного Си кода.
  7. syrdon Учаcтник

    • Участник
    Рег.:
    21.05.2007
    Сообщения:
    78
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Хорошо, этим мат. аппаратом владею даже я.

    Вы понимаете тонкую разницу между оценкой ОФ и оценкой выдаваемой Рыбкой, если ей дать немного времени (секунду/десять и т.д.)?

    Примем за версию, что оценка Рыбки похожа на фруктовую. Она статическая. То, что выдаст поиск - оценка после поиска и форсированного варианта. Это статическая оценка не той позиции, которую мы сунули Рыбке, а оценка позиции на конце главного варианта. Если Вы можете создать ОФ, которая выдает эту оценку, то Вам не нужен поиск.

    Пример - у Вас под ударом ферзь или позиция содержит тактический удар. ОФ имеет право оценивать позицию вполне неплохо. Поиск покажет проблему, не ОФ!

    Они свой супчик варят, мы - свой.
    На ТС Рыбаку ткнули в нос маленькую ошибочку в бете. Рыбка неправильно вычисляла расстояние до мата из позиции хэш-таблицы. Лень искать ссылку, но прецедент был. Здесь Рыбкин утверждал, что сделал "невозможное".

    Это проблема Хьятта. Код распух страшно. Фрукт чист, как слеза ребёнка.

    Это же не серьёзно! Вы много лет носите куртку и не верите мне, папуасу голож..пому из Сети, что опытный карманник может вытащить кошелёк.
  8. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Думаю что вы должны знать что я это понимаю значительно лучше вас.

    А вы даже не понимаете сути корреляционного анализа. Нам не нужна оценка Рыбки, тем более не нужна оценка выдаваемая её ОФ - нам нужна как можно более правдивая оценка. Поэтому и берется Рыбка в качестве генератора этих оценок, и поэтому желательно давать как можно больше времени на ход.
    Близость оценок и выдаваемых ходов - это всего-лишь побочный эффект метода.

    Если вы не в курсе - есть программмы авторы которых не скрывают что использовали корреляционный анализ, правда используют для получения оценок предыдущие версии программы. И этот метод работает.
  9. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Плохая читабельность Крафти это проблема конечно-же Хьятта. Только код Хьятта - "чист как слеза ребенка" по сравнению с любым откомпилированным кодом.

    Я два десятка лет вращаюсь в программистких кругах, в том числе общаюсь с людьми специализирующихся на защите интерпретируемого кода - в том числе подменой имен переменных и компиляцией его в промежуточный код. И видел достаточно конкурсов на восстановление алгоритмов откомпилированного кода. Уверяю вас, что "папуас голо***ый" умеет это делать значительно хуже спецов на этом специализирующихся.
  10. syrdon Учаcтник

    • Участник
    Рег.:
    21.05.2007
    Сообщения:
    78
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Да, знаю, некоторые и Temporary Difference Learning прикручивают. Но мы имеем прецедент подгонки под другую программу.

    По-моему, "как можно более правдивая оценка" - это костыль. Всё решает поиск. ОФ только направляет его. Могу ошибаться, но у меня сложилось мнение, что ОФ должна не мешать поиску. Она всё равно не панацея.

    Сергей, при всём уважении, так нечестно. Вы давите авторитетом. Давайте попробуем провести эксперимент. Вы открываете доступ к оптимизированной, но не обфусцированной специально 32-х битной версии Анечки. Просто турнирной версии без осложняющих анализ заморочек. А через месяц я сообщаю, что в ней понял. На основании этого Вы ставите мне пиво или, если я не буду в Питере в это время, заносите хороший пузырь тестю. Или я вам ставлю пиво, или перевожу небольшую сумму на WebMoney.
  11. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Дело не в авторитете, а в том что именно с помощью автоматического расчета ОФ я смог написать одну из сильнейших в мире шашечных программ (использовался не корреляционный анализ, а другие методы) - но я знаю методы других шашечных программистов - автор одной сильной программы использовал именно корреляционный анализ и добился очень хороших результатов.

    Более того я отлично понимаю, что если бы я заявил что написал программу на основе исходников KestoG, при этом использовал алгоритмы выцепленные из декомпилированных Каллисто и Авроры то началась бы похожая буча (при этом у меня тоже не было промежуточных версий). Откомпилированная Анечка доступна, так-же как и оскомпилированный Скифи. Попробуйте разобрать их откомпилированный код :)

    Подгонка под другую программу тоже возможна. Я даже готов поспорить что сделаю "очень похожий клон" - например на Каллисто. При этом готов выложить код при помощи которого эта похожесть была достигнута. (только понятно что для такой работы я должен иметь $$ интерес)
    Насчет шахмат я не буду спорить - мне написание шахматной программы в данный момент абсолютно неинтересно.

    Насчет перебора - я думаю что Осипов просто сумел написать очень хорошие переборные алгоритмы.
  12. syrdon Учаcтник

    • Участник
    Рег.:
    21.05.2007
    Сообщения:
    78
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Сергей, тонкость в том, что каждый из нас часто заменяет "я не умею" на "невозможно".

    Шашки - несколько другая история, тут я абсолютно некомпетентен. Но верю, что даже так.

    Вполне возможно. Я не утверждал, что Стрелка клон или не клон, я просто указал на то, что он мог то и то.

    Если она не обфусцирована и всё такое, то принимается. Бутылку хорошего шампанского занесёте? :)
  13. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Да, согласен. Если будут выцеплены алгоритмы Анечки либо Скифи (ОФ и переборные алгоритмы) - с меня бутылка шампанского.
  14. syrdon Учаcтник

    • Участник
    Рег.:
    21.05.2007
    Сообщения:
    78
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Остановимся на Анечке.
    Через месяц.

    С Уважением

    Сырдон
  15. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
  16. Kos Учаcтник

    • Участник
    Рег.:
    20.09.2007
    Сообщения:
    149
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Мало. :)
  17. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Бутылка хорошего шампанского :)
  18. Vertu Старожил

    • Участник
    • Старожил
    Рег.:
    22.12.2006
    Сообщения:
    972
    Симпатии:
    44
    Репутация:
    4
    Оффлайн
    Думаю, в Шампани плохого не делают
  19. Alexander Заслуженный

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    12.02.2006
    Сообщения:
    3.579
    Симпатии:
    1.568
    Репутация:
    43
    Оффлайн
    Не могу спокойно смотреть, как народ на мерзкий брют разводят :)
  20. syrdon Учаcтник

    • Участник
    Рег.:
    21.05.2007
    Сообщения:
    78
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Сергей, знаете, это оказалось куда легче, чем я ожидал.
    Вот просто результаты, чтобы Вы убедились, что ОФ Анечки я осмотрел.

    Анечка использует 0x88 представление. Белая ладья = 0x4, слон = 0x3 и т.д. черные представлены отрицательными числами.

    Часть ОФ, как я разумею миттельшпильная, работает для белых так (для черных наоборот):
    Сперва идёт таблица оценок для каждого поля.

    Для пешек заполняется массив кол-ва пешек в вертикалях. (сколько штук на a, b, с и т.д.) Потом по этому массиву будут пенализированы двойные пешки.
    Для коней дополнительной оценки нет.
    Для слонов за каждое доступное поле 5 очков.
    Для ладей за каждое доступное поле 10 очков. Своя ладья не считается преградой.
    Для ферзей устанавливается флаг, что ферзь есть и вычитается 4*дистанцию до короля противника.

    Так оцениваются фигуры.
    Потом проходные пешки.
    1000 за пешку на 7 горизонтали.
    1000 за две рядом.
    700 за каждую пешку, защищающую с 6-й горизонтали.

    Потом проходные пешки 6-й горизонтали.
    Похожие действия.

    Потом оценка пешек в центре с C4 по F4.
    Бонус за рядом стоящих
    Потом тоже для C5-F5.

    Пенальти за невозможные рокировки.

    Потом в зависимости от наличия/отсутствия черного ферзя вычисляется безопасность короля.
    Пешечная цепь и всё такое. Главное ладью не зажать в углу.

    Потом пенальти за зажатого слона, которому не выбраться из вражьего стана.
    Потом пенальти за блокированные центральные пешки E2 и D2. Они могут быть блокированы своим слоном (чуть лучше) или вражеской фигурой (хуже).

    Потом пенальти за блокированные врагом C2 и F2 пешки.

    И хватит...

    После else идут сдвоенные пешки и много чего, что я НЕ хочу смотреть.

    Никакое ноу-хау из Анечки я не выдал и не собираюсь.

    Итоги.

    Я потратил чуть больше 4-х часов. Всего я нашел основной поиск, форсированный поиск, ОФ, исполнение хода, инициализацию хэша позиции и что-то по мелочи. Подробно разобрал половину ОФ - дальше стало лениво. В целом, очевидно.

    Экспертом в декомпиляции или ассемблере не являюсь, а, значит, утверждение о толковом студенте второкурснике считаю подтверждённым. Со второго курса не имел с ассмом дела.

    Использовал RecStudio и бесплатную версию IDAPro. Первая создает относительно приемлемый код с некоторыми ошибками. Второй используется для чистки и проверки первого.

    Больше я всем этим не занимаюсь. Помножив объем добытых знаний на 30 дней в месяце получим Анечку с избытком.

    С Вас бутылка за демонстрацию принципиальной возможности декомпиляции.
    Хорошее шампанское - нормальный гонорар за 4 часа возни.

    С Уважением

    Сырдон
  21. Kos Учаcтник

    • Участник
    Рег.:
    20.09.2007
    Сообщения:
    149
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    syrdon, берут смутные подозрения, что Вы ничего не декомпилировали а рассказали общие положения шахматного алгоритма, который наверняка есть в любой шахматной программе. Хотите я расскажу, чем Вы сегодня утром занимались? Итак, Вы проснулись, умылись, почистили зубы, оделись, заправили кровать. Дальше идёт много чего, чего я смотреть НЕ хочу, я затратил 1 минуту времени, я ясновидящий. :)
  22. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    sydron, вроде речь шла о полном разборе алгоритмов, а не выцеплении маленького куска из ОФ.
  23. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Для ладей за каждое доступное поле 10 очков. Своя ладья не считается преградой.
    Это не совсем так...

    Насчет ферзя - посмотрел ассемблерный код - там всего чуть-чуть, но разобрать тяжело. Но всё верно - 4 очка штрафа за каждое поле расстояния.

    А хоть одну PST выцепить сможешь?
  24. дуп Учаcтник

    • Участник
    Рег.:
    11.09.2007
    Сообщения:
    113
    Симпатии:
    0
    Репутация:
    0
    Адрес:
    Великий Новгород
    Оффлайн
    Не получите. Понять логику программы из ассемблерного листинга невозможно. Даже если вы скажите (например) : "там используется Principial Variation". Ну и что ? У многих он используется. Только результаты разные, как раз все дело во взаимосвязи различных тонкостей.
  25. syrdon Учаcтник

    • Участник
    Рег.:
    21.05.2007
    Сообщения:
    78
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    2Kos Вау! Круто! Какого цвета мои трусы?

    Да, но за месяц.

    Не такой и маленький кусок. Черных я игнорировал.
    Веса я опускал для того, чтобы Вы меня не обвинили в разглашении.

    Упомянутые центральные пешки рядышком стоят 30 и 40 соответственно.
    Пенальти за зажатого слона 1500.

    Там цикл. Продолжается пока наталкиваемся на аналогичную ладью или свободное поле.
    Взятия считаются.

    Таблица PST находится по адресу 0x4A9D7C
    Индекс вычистляется так: (фигура + 7)<<7 + позиция
    Значит, скажем на 0x4A9F7C находится (0x4A9F7C - 0x4A9D7C)/(4*0x80)-7 = 0x200/(4*0x80)-7 = -6
    Король, однако.

    По адресу значение -100240.
    Столько стоит король на A1?
    Ферзь там же -9000.
    Ладья там же -4960.
  26. syrdon Учаcтник

    • Участник
    Рег.:
    21.05.2007
    Сообщения:
    78
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Товарищ, читаем внимательно.
    Во-первых, я использовал не голый ассемблер, а декомпилят RecStudio.
    Во-вторых, представлены более конкретные данные
    В-третьих, поддержка Delphi нас не колышат.
    В-четвертых, говорим "я не пробовал" или "наверное, трудно" вместо "невозможно".
  27. дуп Учаcтник

    • Участник
    Рег.:
    11.09.2007
    Сообщения:
    113
    Симпатии:
    0
    Репутация:
    0
    Адрес:
    Великий Новгород
    Оффлайн
    1. "Я не пробовал". "Наверное трудно". Согласен.
    2. При чем тут Delphi и почему она должна кого то колыхать я не понял.
    3. В посте 1098, где вы договаривались с NS ясно написано ".....и переборные алгоритмы". Так что поживем увидим. Время у вас еще есть.
  28. syrdon Учаcтник

    • Участник
    Рег.:
    21.05.2007
    Сообщения:
    78
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    2. В программе прилинкованы библиотеки поддержки. Сравнение строк, ввод/вывод. Нам плевать на их алгоритмы. Как только ты понимаешь, что функция сравнивает две строки, её и все ею вызываемые можно не рассматривать.

    3. Не уверен, что продолжу. Цель была не раскрыть алгоритмы Анечки (Сергей их знает), а показать возможность взлома важных кусков за месяц. За 4 часа была взломана половина ОФ, самый волосатый кусок кода. Функции поиска найдены. На мой взгляд, можно проэкстраполировать.
  29. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Неа, не так. Не 10 очков. :)


    Ничего секретного в программе нет, а исходники я не выкладывал только из-за того что в программе достаточно кривой код. Поэтому можно давать все веса и таблицы.

    ОФ конечно проще чем переборные алгоритмы, тем более что у меня Оф всего на 100 строк.
    Но достигнутое за такой короткий срок конечно впечатляет... Теперь буду защищать код.
  30. Renegat23 Заслуженный

    • Заслуженный
    Рег.:
    08.02.2007
    Сообщения:
    1.823
    Симпатии:
    3
    Репутация:
    0
    Оффлайн
    Для начала шампанское! :cool:
  31. syrdon Учаcтник

    • Участник
    Рег.:
    21.05.2007
    Сообщения:
    78
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Как это не 10? :)

    Так. Давайте сверимся. У меня Anechka008.exe.
    ;Контекст:
    ;esi - указатель на структуру с позицией.
    ;[esi + 1] - Начало 0x88 доски.
    ;edx - координаты поля
    ;В edi указатель на текущую оценку


    ;В switch:
    lea eax, [edx+10h]
    jmp WH_ROOK_N ;Ладья сперва идет на север!
    ....
    LOOP_WH_ROOK_N:
    movzx ecx, al
    movzx ecx, byte ptr [esi+ecx+1];Фигура с поля с индексом ecx в ecx
    mov [piece], cl
    add dword ptr [edi], 0Ah ;Дай бонус в 10 очков!
    cmp [piece], 0
    jz short GO_NEXT_N
    cmp [piece], 4
    jnz END_LOOP_WH_ROOK_N

    GO_NEXT_N:
    add al, 10h

    WH_ROOK_N:
    test al, 88h
    jz LOOP_WH_ROOK_N
    END_LOOP_WH_ROOK_N:

    Декомпиляцию ОФ официально засчитываем ;)?
  32. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Раз обещал - значит будет шампанское :cool:

    Там для Ладьи больше кода чем приведено :)
    Декомпиляция понятно что без проблем - проблемы с разбором кода.
  33. syrdon Учаcтник

    • Участник
    Рег.:
    21.05.2007
    Сообщения:
    78
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Там дальше тоже самое для других направлений движения ладьи.
    И везде бонус 0xA.
    Это первый switch в ОФ.

    Тело по else я смотрел по диагонали. Но начинается оно, если хотите, всё теми же зажатыми слонами.

    Т.е. принципиальную возможность взлома Вы признаёте?
  34. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Нет, там не везде 10...
    Да, признаю - я об этом писал. Я оцениваю ресурсоемкость разбора ста строк кода - две недели.
    (где вы еще найдете программу с ОФ в сто строк :) )

    У меня в миттельшпильной ОФ около десяти признаков и PST фигур. (разбора миттельшпильной наверно достаточно)

    Сейчас нет исходников - я вечером могу выложить список весов признаков - если сможешь каждый описать, и выложить PST - то ОФ засчитывается, и соответственно я отдаю шампанское.
    Если разберешь перебор - то поверю в возможность разбора кода Рыбки...
  35. syrdon Учаcтник

    • Участник
    Рег.:
    21.05.2007
    Сообщения:
    78
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Как то Вы резко на "ты" перешли :D .
    Да, точно. Ходы ладьи по горизонтали оцениваются в 3 очка. Схалтурил.

    PST выкладвывать не интересно - процедура такая: адрес я указал. Берётся Dump памяти и всё.
    Там (WHITE_KING + 7 + 1) * 128 штук полей. Как-то так.

    Миттельшпильную процедуру я уже описал. Вроде ничего сильно не пропустил.
    Веса могу выложить.

    Пенальти за невозможность рокировки (флаг в начале структуры): 50 очков.
    Безопасность короля вычисляется так:

    Если ферзь противника есть.
    Сразу на месте -450.

    Для королевского фланга:
    Если король на G1, H1 или H2 и на H1 не заперта ладья, то +300
    Если к тому же (Пешка H2 ИЛИ Пешка H3) И (Пешка G2 ИЛИ Пешка G3 И Пешка F2) то +300

    То же самое для ферзевого фланга.

    Если ферзя противника нет.

    Если король на G1, H1 или H2 и на H1 не заперта ладья, то +200

    Зажатая своим слоном E и D пешка -350
    Зажатая противником -500.

    Зажатые противником слоновые -100.

    Потом идёт, как я разумею эндшпильная часть.

    Потом сдвоенные пешки.
    -128 * (кол-во пешек - 1)
    Если они дуры ещё и изолированные, то -512 * (кол-во пешек - 1).

    Всё. Больше я за 4 часа не разобрал.

    Нет, спасибо. Я ограничусь шампанским.

Поделиться этой страницей