2.7 KiB
Title: Текстовый интерфейс «Памяти» Date: 2024-06-14 00:00 Category: News Slug: memory-text-ui Lang: ru
Текстовый интерфейс «Памяти»
В мае реализовал текстовый интерфейс игры «Память» на Python. В C++ перевёл инструментом.
Реализация логического игрового цикла привела к появлению контроллера, управляющего контекстом. Создание контроллера на Python прошло без происшествий, а вот с версией для C++ пришлось помучиться. Мучения были вызваны тем, что контроллер использует std::any из C++17, а инструмент ограничен C++11 с целью поддержки OpenWrt.
Что касается объёма кода, то картина получилась следующей (в строках):
- (Python) Портируемый код логики: 360
- (Python) Портируемый код тестов: 565
- (Python) Непортируемый код контроллера, ввода-вывода и т.п.: 350
- (C++) Портированный код логики: 360
- (C++) Портированный код тестов: 586
- (C++) Непортируемый код контроллера, ввода-вывода и т.п.: 565
В процентах выглядит это так:
| Язык | Всего строк кода | Портируемого | Непортируемого |
|---|---|---|---|
| Python | 1275 (100%) | 925 (72%) | 350 (28%) |
| C++ | 1511 (100%) | 946 (62%) | 565 (38%) |
Выходит, что разработка версии игры «Память» на языке С++ оказалась на 62% строк кода дешевле, чем была бы без использования инструмента. Цифры приятные.
Сам текстовый интерфейс игры «Память» на текущий момент выглядит следующим образом:
Планы на июнь
В июне сделаю простейший графический интерфейс для версии Python.