codebattle
codebattle copied to clipboard
Task Editor
Альтернатива battle_asserts. Мы хотим добавить возможность написания кастомных тасок для кодбатла через сайт. Реализовать как добавление в список общих, так и формирование своих отдельных списков в рамках турнира или хакатона. Генерация задачи состоит из следующих этапов:
- (*) Условие задачи, его уровень сложности (В будущем будут и дополнительные метки). У всех задач единый формат: это написание функции solution, который получает на вход аргументы и возвращает результат вычислений (без побочных эффектов).
- (*) Типы аргументов функции и тип возвращаемого значения. (Cигнатуры)
- (*) Примеры вызова solution. Каждый пример состоит из набора аргументов и ожидаемого значения. (Минимум 5 примеров)
- Генератор аргументов. Он нужен, чтобы динамически генерировать случайный набор входных аргументов.
- Эталонное решение (реализованная функция solution). Через него будут прогонятся набор аргументов из 4 шага, чтобы для каждого набора вычислить ожидаемое значение.
(*) - Необходимые этапы. Остальные нужны для генерации ассертов на лету (условно) и этим можно пренебречь для упрощения создания тасок.
На стороне фронтенда нужно оформить все этапы выше и отправку всех данных на сервер. На стороне сервера задача генерация таски, по данным редактора. Проверить кастомные примеры (шаг 3) и сгенерированные примеры (шаги 4-5) на соответствие сигнатурам и записать таску в базу.
Под этим ишью будет основное обсуждение идеи, если возьмём в разработку. Разработка ведется в ветке 991-task-editor
@vtm Так, что случилось?)))
начну делать. Постараюсь сначала разбить на более мелкие задачи.
добавил такую возможность через серверный рендеринг, посмотрим как оно пойдет.
добавил такую возможность через серверный рендеринг, посмотрим как оно пойдет.
добавил такую возможность через серверный рендеринг, посмотрим как оно пойдет.