
Реализовать код на Си
Необходимо разработать игру/тест скорости печати. Пользователю выпадает текст или набор слов, которые он должен правильно вводить с клавиатуры.
Пример: https://brainapps.ru/typing-test/start
ТЗ:
- Текст или набор слов, которые должен вводить пользователь хардкодятся в программе. Можете сделать, чтобы они читались из файла. Текст или набор слов вы подбираете сами. Только латиница!
- При запуске программы текст полностью появляется в терминале. Если он не помещается, то появляется только его часть. Как только пользователь подходит к концу видимой части текста, текст прокручивается на страницу ниже.
- При запуске курсор появляется в самом начале текста, и при наборе каждого символа перемещается на следующий символ
- При вводе правильного символа, символ подсвечивается зеленым. При вводе неправильного красным. При этом если символ введен неправильно, то курсор все равно переходит к следующему символу. То есть, если пользователь ошибся в вводе символа, свою ошибку он исправить не может. Это важное отличие от примера, который я скинул выше.
- Необходимо реализовать 3 уровня сложности игры. Уровень сложности передается первым аргументом, и может принимать значения `easy`, `medium` и `hard`. На каждый уровень сложности есть 3 различных текста или набора слов, которые выводятся в зависимости от выбранного пользователем уровня. Здесь проявите креатив и придумайте как можно по уровням сложности подобрать текст. Например, в `easy` будут короткие знакомые слова, а в `hard` текст с длиннющими незнакомыми словами и кучей знаков препинания.
- Вторым аргументов в программу передается ограничение по времени в секундах. То есть на ввод текста дается ограниченное время, которое введет пользователь вторым аргументом. Если пользователь не допечатал текст, а время вышло, то игра завершается. Здесь также необходимо установить верхний диапазон по времени, и проверять на корректность введенное время.
- Третьим аргументом передается число ошибок, которые может совершить пользователь. Если пользователь ввел неправильно символов больше, чем указано в третьем аргументе, игра заканчивается. Здесь также сделать верхний диапазон.
- Должна быть проверка на правильность ввода аргументов. Если какой-либо из аргументов введен неправильно, или не указан вовсе, выводить ошибку с конкретным описанием того, что не так сделал пользователь, а также `help` сообщение c описанием каждого аргумента, по типу такого, только для вашей программы
```
Usage:
pip [options]
Commands:
install Install packages.
download Download packages.
uninstall Uninstall packages.
freeze Output installed packages in requirements format.
```
- По завершению игры, независимо то того как она завершилась (пользователь все напечатал правильно, или проиграл из-за времени или ошибок) должна выводится статистика о игре:
1) Количество правильно введенных символов
2) Количество неправильно введенных символов
3) Общее количество введенных символов (правильные + неправильные)
4) Средняя по игре скорость печатания символов, измеряемая в количестве символов в минуту
5) Средняя по игре скорость печатания слов, измеряемая в количестве слов в минуту
- Код должен быть написан красиво, читаемо. Весь проект должен быть разделен на файлы как в ДЗ4, название которых соответствует функционалу, который в них реализован
Заявки фрилансеров
