1. Esports World Cup 2025 13:00 | Шахматные звезды 5.0 | Дубов - Ниманн
    Тур чемпионов. Финал top!! | ЧМ рапид + блиц 25 top!!
    Последний довод короля Книга - NEW!
    Очень СКОРО переезжаем. Оставайтесь с нами!

init_tables

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

  1. NS
    Оффлайн

    NS Нефёдов Сергей баннер

    Репутация:
    3
    Не слишком ли много условий?
    delta = pos->King[side] - f +128;
    И одно условие - смотрим по предварительно рассчитанному массиву.
     
  2. WinPooh
    Оффлайн

    WinPooh В.М. Команда форума

    Репутация:
    95
    Пробовал и так, и так. Разница очень небольшая, плюс-минус несколько процентов. Причём машинно-зависимая. Если память быстрая, то вариант с массивом выигрывает. Если медленная, то с проверками. Даже не память, а кэш.

    Условий не очень много. В подавляющем большинстве случаев (когда нет шаха конём) будет срабатывать полторы проверки - в половине случаев на знак, и один раз на модуль меньше 33. Думаю, что предсказатель ветвлений будет их хорошо предсказывать, т.к. ветки часто будут повторяться.

    Во Фрукте, вроде бы, тоже такая составная конструкция используется.

    В общем, главное правило оптимизации: не оптимизируй :)
     
  3. NS
    Оффлайн

    NS Нефёдов Сергей баннер

    Репутация:
    3
    Я уже недооптимизировался и в шашках и в шахматах так что и там и там NPS в три раза меньше чем у конкурентов. :)
     
  4. WinPooh
    Оффлайн

    WinPooh В.М. Команда форума

    Репутация:
    95
    Ну, на такой замене проиграть в три раза при всём желании не получится. Даже если число проверок удвоить :)
     
  5. WildCat
    Оффлайн

    WildCat Коршунов Игорь Команда форума

    Репутация:
    0
    Жуткий офтоп. Про генерацию ходов нужно писать в другой ветке.
     
  6. ProstoTak
    Оффлайн

    ProstoTak Старожил

    Репутация:
    1
    Значицца так. Докладаю. После некоторой доделки мой генератор даёт 5 000 000 генераций всех (20) ходов из начальной позиции за 22 секунды. Это получается около 4,5 миллионов ходов в секунду генерит. Правда пока нет проверки на шах и превращение только в ферзя. Проц Celeron 900 MHz.
    Это много или мало?
     
  7. NS
    Оффлайн

    NS Нефёдов Сергей баннер

    Репутация:
    3
    Это мало. Сделай Perft тест, и посчитай какая скорость получается на нем.
     
  8. NS
    Оффлайн

    NS Нефёдов Сергей баннер

    Репутация:
    3
    Кто-нибудь из модераторов может перенести обсуждение Генератора/проверки на шах в отдельную тему?
     
  9. ProstoTak
    Оффлайн

    ProstoTak Старожил

    Репутация:
    1
    А что это такое?
    И для примера что у тебя и на каком проце получается?
     
  10. Chemer
    Оффлайн

    Chemer Максим

    Репутация:
    0