|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Yaroslav Mironov 2:5020/400 11 Oct 2001 08:00:03 To : Michael Savin Subject : Re: Пять в ряд -------------------------------------------------------------------------------- Dear Michael, Michael Savin <Michael.Savin@f269.n5070.z2.fidonet.org> пишет: MS> Алгоритм сабжа для компа? Идея решать задачу как MS> в шахматах (задавать глубину MS> ходов и проверять все возможные варианты) мне не MS> нравится, т.к. слишком MS> трудоемко. Есть ли методы оптимизации? Когда-то я писал пять в ряд. Глубина просчёта была один полуход :) Просто каждой свободной клетке поля задавался приоритет. Самый высокий, если при выставлении ты получешь свои пять в ряд. Чуть пониже, если противник получит пять в ряд, поставив свой значок в этой клетке. И так далее -- для каждой комбинации (4 в ряд, 2 + 2, 1 + 3, 3 в ряд) свой весовой коэффициент для тебя и чуть поменьше для противника (чтобы игра была на выигрыш, а на на непроигрыш). Приоритет каждой клетки -- простая сумма весовых коэффициентов всех комбинаций, которые получатся у тебя или у противника при выставлении на эту клетку. В результате значок ставится на клетку с самым высоким приоритетом. Hесмотря на такую простоту обыграть это чудо мне удавалось только после нескольких десятков партий (поскольку расчёт строго детерминистический, то выиграв один раз можно выигрывать этим способом всё время). В принципе после этого хорошо бы написать алгоритм, которые корректировал бы весовые коэффициенты в зависимости от проигрыша/выигрыша. Ярослав -- Отправлено через сервер Talk.Ru - http://www.talk.ru --- ifmail v.2.15dev5 * Origin: Talk.ru (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/64880462cc89.html, оценка из 5, голосов 10
|