Форум HeroesWorld-а - Показать сообщение отдельно - Программа по определению удачи/морали в героях 3!
Показать сообщение отдельно
#65
Старый 07.08.2008, 13:30
  #65
^
AlexSpl
 
Аватар для AlexSpl
📖
Регистрация: 07.06.2006
Сообщения: 615
Выставка наград
Регистрация: 07.06.2006
Сообщения: 615
Выставка наград
По умолчанию
Re: [HMM III OFF] Мини-Турнир "For Sale"

2Andrey44_44: Ага, знакомая ситуация, ведь знаешь же, что победа твоя, а она никак не хочет приходить... Зато когда придёт, называешь себя гением и ни капельки не сомневаешься

О морали в Героях III...
Провёл анализ. Вот что удалось выяснить:

1) Условие выпадения морали такое же: mod(R, 24) + 1 <= m (в данном случае m - это мораль отряда);

2) R - псевдослучайное число - напрямую от таймера не зависит, но теория "задержек" ВЕРНА! Поясню: число R постоянно изменяется в некотором цикле, даже если игрок ничего не предпринимает. Далее, R изменяется довольно быстро, но неравномерно, рывками. Интересное наблюдение: скорость изменения числа R падает до единицы в секунду (примерно, конечно), если просматривать информацию об отряде (ещё одно подтверждение, что это число меняется в цикле анимации). Бывает и такое, что где-то секунду-две R не меняется вовсе...

3) Вывод: предсказать выпадение морали в Героях 3, IMHO, практически не возможно.

4) Функция __rand() вызывает функции ядра операционной системы, поэтому всё-таки разница есть под какой ОС играть.

Убедился, что R действительно меняется в цикле анимации бездействующих отрядов. Т. е. чем больше орков взмахивают своими топорами, тем быстрее меняется R, а при просмотре информации о герое число R и вовсе не изменяется (заметьте, в этом случае анимация всех отрядов приостановлена!)

Добавлю также, что практически реально создать такую программу, которая бы читала R из оперативки и предсказывала остаток (если скорость анимации поставить на минимум, то скорость изменения R совсем не большая). Например, когда остаток удовлетворяет условию выпадения морали, загорается зелёный "светофор морали" и игрок просто щёлкает мышью. То, что он успеет это сделать, не сомневаюсь. Т. о. можно вполне реально добиться выпадения морали (и, возможно, удачи) каждому своему отряду и притом не изменяя структуру игры. Есть над чем поразмыслить...
AlexSpl вне форума
Ответить с цитированием