@Synthex Выбор задачи не слишком удачный. В ней совсем мало программирования и много работы с библиотечными функциями (читай черными ящиками). Я бы предложил начать с простой игры. Например крестики нолики с консольным интерфейсом.
@grigorkh Уже лучше. Только detect_comand выглядит слишком страшно — можно выкинуть массив commands и просто найти в fnMap первое слово.
+строки стоит передавать по const &
@grigorkh Допишите мой вариант, потом уже можно будет говорить об улучшениях. Не надо пытаться собирать чудовище Франкинштейна тупо копируя куски чужих программ.
@CyberUserRus switch по строкам появился только в 11 стандарте, который еще не стал общепринятым. Тем более ни удобства ни масштабируемости от него не добавится. Вариант с map и вынесением сущностей команд в отдельные классы уже интересней, но сложнее для понимания. А из вопроса, можно сделать вывод, что автор не имеет большого опыта программирования. Что касается опечаток, этот код писался для демонстрации возможной структуры программы. Бездумная копипаста любого кода нежелательна в любом случае.