
- •Введение
- •1 Ход работы
- •1.1 Базовые правила и описание задач
- •1.2 Описание машин
- •1.3 Протагонист и тролль
- •1.4 Реализация противостояния Bard-Clockwork Dragon
- •1.5 Реализация противостояния Bard-Balor
- •1.5 Стратегии с использованием метода Монте-Карло
- •1.6 Анализ логов
- •Заключение
- •Приложение а
- •Карта Барда
- •Приложение б
- •Карта Тролля
- •Приложение в
- •Карта Заводного дракона
- •Приложение г
- •Карта Балора
- •Приложение д
- •Лог партии Бард-Заводной дракон
- •Приложение е
- •Лог партии Бард-Тролль
- •Приложение ж
- •Лог партии Бард-Балор
1.5 Стратегии с использованием метода Монте-Карло
Данные стратегии основываются на 5 предыдущих, с отличием в том, что исходы условий перестали быть гарантированными. Это реализовано путем сверки с установленными значениями сгенерированного случайного числа. Стратегии с негарантированными исходами для протагониста-Барда и антагониста-Тролля представлены на рисунке 1.31. Аналогичным образом были разработаны стратегии для сражения протагониста-Барда и антагониста- Дракона (рисунок 1.32) и балора (рисунок 1.33).
Рисунок 1.31 – Стратегии против антагониста-Тролля с использованием метода Монте-Карло
Рисунок 1.32 – Стратегии против антагониста-дракона с использованием метода Монте-Карло
Рисунок 1.33 – Стратегии против антагониста-балора с использованием метода Монте-Карло
Для данных стратегий были проведено по несколько экспериментов. На рисунках 1.34 - 1.39 представлены результаты (количество побед и поражений).
Рисунок 1.34 – Вероятность победы Bard-Troll используя 1 стратегию
Рисунок 1.35 – Вероятность победы Bard-Troll используя 2 стратегию
Рисунок 1.36 – Вероятность победы Bard-Clockwork Dragon используя 1 стратегию
Рисунок 1.37 – Вероятность победы Bard-Clockwork Dragon используя 2 стратегию
Рисунок 1.38 – Вероятность победы Bard-Ballor используя 1 стратегию
Рисунок 1.39 – Вероятность победы Bard-Ballor используя 2 стратегию
1.6 Анализ логов
Для составления стратегий для более вероятной победы протагониста, были разработаны логи. Logrn хранит в себе данные одной партии, по результатам каждого раунда в него вносится состояния Протагониста и Антагониста, выпавшие значения костей и выбранные действия. При начале новой партии лог перезаписывается. В Log записываются данные по результатам каждого опыта формируя строку содержащую следующую информацию:
- результат игры для протагониста «Win/Lose»;
- «число раундов»;
- строка, кодирующая действия Антагониста;
- строка, кодирующая действия Протагониста.
Для реализации логов были добавлены палитры и переменные (рисунок 1.40). Палитра Result содержит в себе значения Win и Lose, для записи в лог результат игры. Палитры ANTLIST и PROLIST необходимы для записи выбранных действий антагонистом и протагонистом соответственно.
Рисунок 1.40 – Описание переменных
С перехода Check Winner, используя переменную ending, передается результат игры, где «1» – это проигрыш, «2» – победа (рисунок 1.41). Также эта переменная используется для очистки LOGLIST.
Рисунок 1.41 – Передача результата игры
На рисунке 1.42 представлен лог одной игры Bard-Troll, a на рисунках 1.41 – 1.42 игры Bard-Clockwork Dragon и Bard-Balor. Данные для лога передаются из переходов Apply Actions и Check Winner.
Рисунок 1.42 – Лог одной игры Bard-Troll
Рисунок 1.43 – Лог одной игры Bard-Clockwork Dragon
Рисунок 1.44 – Лог одной игры Bard-Balor
Данные для лога передаются из переходов Antagonist Acts, Protagonist Acts и Check Winner. Из переходов Antagonist Acts и Protagonist Acts в ANTLIST и PROLIST передаются выбранные действия персонажами. Переход, для записи данных в LLOG, срабатывает только при условии если переменная ending имеет значения 1 или 2. Переменная i необходима для передачи номера раунда.
На рисунке 1.45 представлен лог партий Bard-Troll, a на рисунках 1.46 и 1.47 партий Bard-Clockwork Dragon и Bard-Balor (приложение Ж).
Рисунок 1.45 – Лог записи партий Bard-Troll
Рисунок 1.46 – Лог записи партий Bard-Clockwork Dragon
Рисунок 1.47 – Лог записи партий Bard-Balor