Охотники и Волк, алгоритм
пишу игрушку на delphi xe, правила таковы: шахматная доска, все игроки ходят по черным клеткам. Охотники стоят на нижней линии, волк стоит наверху. охотники могут двигать только вперед, волк в любом направлении. Цель охотников: запереть волка, цель волка - прорваться сквозь охотников.
Есть две процедуры: одна ходит за волка другая за охотников. Написал алгоритм: когда кому то нужно сходить, она выбирает ход, отсылает другой процедуре, та делает то же самое и так до тех пор пока кто то не проиграет. Потом результат возвращается наверх к первой процедуре и она решает делать этот ход или нет. при полях 4х4 и 6х6 все нормально, а 8х8 из за большой глубины стека очень долго думает, точнее зависает напрочь. Собственно вопрос: как можно оптимизировать игру? Пробовал выставлять ограничение на глубину, если превышает ее - делать рандомный ход. но после этого стало вылетать с множеством сообщений access violation
|