"Гуру программирования" пишет о том как сделать твинк-калькулятор...
And86
"Хватит уже грезить о не решаемости и необходимости понимания механики, достаточно доступно объяснить задачу
1) ломануть базу данных итемов, бафов...
2) ломануть калькулятор скилов
3) Сделать модель механики игры (учитывающую влияние на статы скилов, бафов, одетых шмоток и... все это делается по описанию скилов...)
4) Написать фильтр шмота (разделяет шмот по видам требований, сортирует их по возрастанию требований, затем разделяет по типу ячейки, затем по даваемым параметрам полезным в одевании, удаляет самые бесполезные оставляя по одной шмотке в группе).
5) У нас остались только шмотки полезные для одевания, надо вычислить их "полезность" то есть с какой шмотки начинать итерацию одевания (в группе с одинаковыми требованиями отношение "пользы" шмотки к минимальной в этой группе, или удаляет совсем если ступенью ниже все тоже самое)
6) Написать алгоритм определения "дельты" для каждой статы, то есть суммарное влияние всего того что может увеличить вашу стату и независит от ваших шмоток (сколько "свободных" поинтов мы имеем при этом лвле, сколько дадут скилы, бафы... если мы захотим максануть конкретную стату...
7) Написание алгоритма перебора, повторяемый несколько раз (для каждого вида требований проводится отдельно). Суть его с учетом "дельты" для каждой шмотки одеть шмот максующий один из видов требований, повторить уже для других требований, и как до тупика. Получится несколько деревьев (по количеству требований). В них нас интересуют достижимый предел для каждой из стат и путь к нему.
8) На основе полученных данных, из вашего сета выбираем самую сложную в одевании шмотку, условно ее надеваем (как ее одеть смотрим на дереве).
9) Запускаем алгоритм перебора с залоченым слотом, получаем деревья поменьше.... и так далее пока все не оденется или алгоритм не споткнется...
"
http://forum.ixbt.com/topic.cgi?id=25:22063-133#3850