arithmet-rs - новый проект на Rust, который должен стать прямым
приемником программы Устный счет из C-проекта
arithmet_c.
Исходная программа предназначена для тренировки и проверки устного счета: пользователь выбирает арифметические действия, имя, границы результата, количество примеров и сложность, затем решает примеры на время. После сеанса программа показывает оценку и сохраняет текстовый протокол результата.
Главная цель - перенести функциональность C-версии на Rust без потери
поведения, удобства управления и формата пользовательского опыта. При этом
новая версия не должна быть привязана к DOS-совместимому 80x25 viewport:
интерфейс должен нормально растягиваться по размеру терминала и оставаться
удобным на Linux, Windows и, по возможности, macOS.
- выбор операций: сложение, вычитание, умножение, деление, деление с остатком;
- ввод имени пользователя;
- настройка нижней и верхней границы результата;
- настройка количества примеров;
- настройка сложности через лимит времени на ответ;
- генерация примеров с логикой, близкой к C-версии;
- ввод ответа с
Enter, отказ от текущего примера черезEscи выход из сеанса черезF10; - переход к следующему примеру через
Tab; - итоговая оценка по пятибалльной шкале;
- сохранение протокола каждого сеанса рядом с программой или в настроенном каталоге;
- просмотр результатов, включая старые протоколы из каталога программы;
- схожие горячие клавиши главного экрана:
+,-,*,/,:,И,О,Д,К,С,F1,Enter,Esc.
- настройки должны храниться в конфиге, а не в бинарном
a.dat; - терминальный интерфейс должен быть адаптивным, а не просто центровать
DOS-экран
80x25; - платформенно-зависимый код должен быть минимальным и находиться только в тонком слое ввода/вывода;
- код должен быть разделен на понятные Rust-модули с тестируемой бизнес-логикой;
- протоколы старых результатов нужно уметь читать и показывать в интерфейсе;
- мышь в терминале можно добавить как улучшение, если выбранная TUI-библиотека поддерживает это без сложной платформенной логики.
- docs/MIGRATION_PLAN.md - подробный план прямого переноса C-проекта на Rust.
- docs/RUST_GUIDE.md - что изучать в Rust по ходу реализации и где это смотреть.
Сейчас проект является стартовым Rust crate. Основная работа впереди: сначала нужно перенести модель настроек, генератор примеров и протоколы, затем собрать TUI-интерфейс поверх готовой логики.
cargo buildcargo run