Задача
Произвести рефакторинг кода на C, реализующего игру виселица.
Исходный код
- hangman.c – код программы на одном из старых диалектов C, но, тем не менее, с минимальными модификациями собирается современными компиляторами.
- words – словарь английских слов для игры.
Описание
В процессе рефакторинга необходимо:
- Переписать код на C++ (объявление переменных не в начале блока, а там где они реально используются, убрать анахронизмы языка C, и т. п.)
- Избавиться от define'ов (объявление констант) и глобальных переменных.
- Избавиться от
goto
.
- Текстовый ввод / вывод производить через
std::cout
и т.п.
- Обработку ошибок перенести на механизм исключений и
std::exception
.
- Работу со строками перенести на
std::string
.
- По возможности заменить примитивные структуры данных наподобие массивов на
std::array
либо std::vector
, std::stack
, std::queue
или другие.
- Выделить класс игры, отделить игровую логику от интерфейса.
- На дополнительный балл: используя
std::wstring
, реализовать поддержку языка, отличного от английского. В проекте прилагается файл словаря на русском языке.
Архив с проектами для Visual Studio 2013 и Visual Studio 2015.
Примечания
нет отделения логики игры от ввода/вывода. Есть 1 класс содержащий 1 метод - это не ООП, это ерунда какая-то.