codebattle
codebattle copied to clipboard
Тренировочный режим
Облегченный режим для новичков или ребят, которые хотят только поиграться с механикой кодбатла, без челенджа.
-
Добавить новый режим с ботом (training) на фронтенде (Модалка в Лобби) и на бекенде (добавить еще тип, механика генерации совпадает с игрой против бота)
-
Придумать пул задач с уровнем training для battle_asserts, который наш сервер будет подбирать для этого режима. Так же можно выложить список таких задач на этапе формирования игры, чтобы игрок мог сам выбрать решаемую задачу.
- [x] Ввести новое поле в конфигурацию тасок - теги, содержащую дополнительную мета информацию. Тег training будет определять пул задач для нашего режима.
- [x] Определить пул задач для нашего режима. Придумать свои или взять из пула задач уровня elementary.
- [x] Мигрировать базу тасок
- [ ] Вывести информацию о тегах в реакт компонентах
-
Настроить режимы работы бота (Настровать в начале и возможно по ходу игры). Для таких игр мы можем настроить бота так, чтобы он отыгрывал механику написания решения к задачи, но не отправлял на проверку, а перезагружался, брал другое решение и повторял с начала.
Под этим ишью будет основное обсуждение идеи, если возьмём в разработку.
А есть какие-нибудь особые условия для training задач в battle_asserts, которые их отличают от тех же elementary?
Если говорить про сами таски, то они по сути не отличаются от них. Но набор лучше явно ограничить.
Может тогда сделать для задач булевый флаг? Например use-in-training ?
Булеан точно не будем вводить. Лучше набор тегов, которые будут расширять описание тасок.
Прикрутил теги к генерации задачек https://github.com/hexlet-codebattle/battle_asserts/pull/708 На неделе тогда соберу пулл задачек и попробую бекенд под новую структуру подкрутить тогда
В самих задачках теперь это будет выглядеть вот так (def tags ["training" "collections" "some another tag"])
Собрал набор задач https://github.com/hexlet-codebattle/battle_asserts/pull/709
@solar05 , хорошая задачка на беке, добавить скоуп по тегам в селектор тасок, нужно добавить optional param для task_tags: [...] и с create_training добавить выбор с тегом training, и @origin_types github

done