Задача «Игра "Виселица"»

Задача

Произвести рефакторинг кода на 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 2008 и Visual Studio 2013.