Google
 

Сайт Андрея Иванова

Андрей Иванов - все секреты шашек и шашистов

Login





 


 Забыли пароль?
 или новый пользователь? Зарегистрируйся!

Кто с нами

Пользователей:  На сайте
Пользователей:  Пользователей: 0
Гостей:  Гостей: 5
Всего:  Всего: 5
Пользователей:  Зарегистрированные
No members connected


Новая тема   Ответить
Предыдущая тема Версия для печати Войти и проверить личные сообщения Следующая тема
Автор Сообщение
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
Откуда : Санкт-Петербург
3. Их не надо придумывать, они известны уже несколько десятков лет.
А первые два пункта можно посмотреть в исходниках SiDra.
Они есть тут:

http://igorkorshunov.narod.ru/Kallisto4.rar
 
 Профиль пользователя отправить личное сообщение  
Ответить с цитатой Наверх
Aleksej
Тема сообщения: Базовые шашечные алгоритмы  СообщениеОтправлено: Янв 19, 2009 - 04:06 PM



Зарегистрирован: Июль 22, 2004
Сообщений: 22

Собираюсь начать писать программы, играющею в Русские шашки. Точнее не полноценную программу, а класс для игры компьютера. Это уже 3-я моя попытка сделать игру Русские шашки.
Пока продумываю алгоритмы. Есть несколько моментов, которые хотелось бы узнать, как реализуются в других программах (если это не является секретом):
1. Какие структуры данных используются для представления шашечной доски, массивы или что-то иное (например, битовые поля)?
2. Как просчитывается оценка хода, применяется ОФ в момент достижения самой глубокой позиции или она строится динамически во время всего прохождения по дереву игры?
3. Как реализуются возможности запоминать уже рассмотренные позиции (тут вообще пока что не придумал каких-либо нормальных и быстрых решений)?

Первая версия моей программы будет работать без баз, только перебор. Сейчас стоит задача максимально повысить качество перебора (за счёт увеличения глубины перебора и улучшения ОФ).
 
 Профиль пользователя отправить личное сообщение  
Ответить с цитатой Наверх
Показать:     
Перейти к:  
Время в формате GMT + 3
Новая тема   Ответить
Предыдущая тема Версия для печати Войти и проверить личные сообщения Следующая тема
PNphpBB2 © 2003-2007 
 
Page created in 0.97835993766785 seconds.