Автор |
Сообщение |
Aleksej |
|
Тема сообщения:
Отправлено: Янв 30, 2009 - 09:17 AM
|
|
Зарегистрирован: Июль 22, 2004
Сообщений: 22
|
|
Какие параметры в оценочной функции учитываются? Понятно, что надо подсчитать число шашек и дамок с каждой стороны. Что ещё может быть важно? |
|
|
|
|
|
Loosseer |
|
Тема сообщения:
Отправлено: Янв 21, 2009 - 11:25 AM
|
|
Зарегистрирован: Нояб 03, 2007
Сообщений: 27
|
|
если какой-то ход является сильнейшим в уже просчитанной позиции, то вполне вероятно, что он будет достаточно хорош в позиции схожей с данной (например полученной от одной и тойже родительской позиции) |
|
|
|
|
|
Aleksej |
|
Тема сообщения:
Отправлено: Янв 20, 2009 - 04:16 PM
|
|
Зарегистрирован: Июль 22, 2004
Сообщений: 22
|
|
Loosseer писал(а): Думаю важнее для начала получитьс просто правильно работающую программу, а затем заняться оптимизацией. Иначе проект с места сдвинуть будет трудно.
Забудьте про битывые поля и прочее, просто для начала обычный массив 8х8 - есть боле эффективные структуры, но это следующим шагом.
Дело в том, что у меня уже есть опыт, есть 1-я программа, которую я писал, она рабочая, доска - массив 8*4 (по чёрным клеткам), считает только перебором с отсечением и сортировкой узлов. Глубина перебора была 12-14 полуходов.
Вот её я начал писать как раз по принципу "главное, что бы заработала, а потом буду оптимизировать". В конечном счёте от бесконечных оптимизаций зашёл в тупик.
Теперь хочу писать сразу правильно, что бы потом не ворочать большие куски кода. Вот интересуют некоторые моменты, как лучше сделать.
Цитата: ходы-убийцы
Что это такое, можно подробнее? |
|
|
|
|
|
Loosseer |
|
Тема сообщения:
Отправлено: Янв 20, 2009 - 10:48 AM
|
|
Зарегистрирован: Нояб 03, 2007
Сообщений: 27
|
|
Думаю важнее для начала получитьс просто правильно работающую программу, а затем заняться оптимизацией. Иначе проект с места сдвинуть будет трудно.
Забудьте про битывые поля и прочее, просто для начала обычный массив 8х8 - есть боле эффективные структуры, но это следующим шагом.
Эффективность структур для данных повысит производительность на линейный коэффициэнт.
Хооший алгоритм даже при примитивных структурах данных увеличит силу игры гораздо гораздо больше.
Навесить хеш, ходы-убийцы, историю, справочники и прчее надо уже на работающий скелет (сделать это все сразу с нуля будет очень ирудно и долго) |
|
|
|
|
|
NS |
|
Тема сообщения:
Отправлено: Янв 19, 2009 - 07:31 PM
|
|
Зарегистрирован: Авг 22, 2006
Сообщений: 671
Откуда : Санкт-Петербург
|
|
|
|
|
Aleksej |
|
Тема сообщения: Базовые шашечные алгоритмы
Отправлено: Янв 19, 2009 - 04:06 PM
|
|
Зарегистрирован: Июль 22, 2004
Сообщений: 22
|
|
Собираюсь начать писать программы, играющею в Русские шашки. Точнее не полноценную программу, а класс для игры компьютера. Это уже 3-я моя попытка сделать игру Русские шашки.
Пока продумываю алгоритмы. Есть несколько моментов, которые хотелось бы узнать, как реализуются в других программах (если это не является секретом):
1. Какие структуры данных используются для представления шашечной доски, массивы или что-то иное (например, битовые поля)?
2. Как просчитывается оценка хода, применяется ОФ в момент достижения самой глубокой позиции или она строится динамически во время всего прохождения по дереву игры?
3. Как реализуются возможности запоминать уже рассмотренные позиции (тут вообще пока что не придумал каких-либо нормальных и быстрых решений)?
Первая версия моей программы будет работать без баз, только перебор. Сейчас стоит задача максимально повысить качество перебора (за счёт увеличения глубины перебора и улучшения ОФ). |
|
|
|
|
|
|