Реализовать игру на основе символьного исполнения

Код — это мир, символьная машина — законы этого мира. Игрок — исследователь. У него могут быть разные цели: изучить всю карту или же добраться до определённого места. Игроки могут соревноваться между собой. У игрока есть набор фишек и на очередном ходу он может выбрать, какой походить, но он не знает, что произойдёт с выбранной фишкой, законы исследуемого мира ему заранее не известны. Но он может их как-то выводить, наблюдая за его поведением. В процессе игры могут открываться новые локации (произошёл вызов метода и мы отправились исследовать его), могут появляться новые фишки (ветвления в коде) и так далее.

Предлагается разработать и реализовать игровой движок и какой-нибудь вариант игры. За основу можно взять PySymGym. При этом надо помнить, что мы не просто так играем, а собираем данные для обучения нейронных сетей: удачные игры нужно записывать и сохранять.

Требования к студенту
  • Понимание основ статического анализа кода. В частности, символьного исполнения.
  • Понимание основ разработки клиент-серверных приложений, в частности игр.
  • Графический интерфейс. В частности, раскладка и визуализация графов.
Уровень

Бакалаврская ВКР, Магистерская ВКР


Руководитель

Григорьев Семен Вячеславович


Консультант

Grigorev Semyon


Источник

Кафедра системного программирования СПбГУ