В новостях...

Текстовый интерфейс «Памяти»

2024-06-14 00:00

Текстовый интерфейс «Памяти»

В мае реализовал текстовый интерфейс игры «Память» на 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.