Три типа заданий, и каждый решает свою задачу.
quiz — выбор варианта
Проверка мгновенная: индекс нажатой кнопки сравнивается с correct. Поле why
показывается в любом случае, и при верном ответе тоже — объяснение важнее вердикта.
text — короткий ответ
Сравнение по строке: обрезаются пробелы, регистр игнорируется. Подходит для чисел и одного слова. Для «расскажите своими словами» не подходит — проверять такое некому.
code — код с автопроверкой
Каждый тест — это имя и список подстрок, которые обязаны встретиться в ответе:
tests:
- name: объявлена функция main
need: ['func main(']
Ограничение честное: это не компиляция и не запуск. Код, который делает вид, что
решает задачу, тесты пройдёт. Пишите need так, чтобы случайно совпасть было трудно.