А никто не обещал, что будет легко. Бывают простые задачи, бывают сложные. И очень сложные.
Но если перед нами объект из 20 состояний, а мы не захотим
реализовывать его как автомат состояний, тогда мы всё равно
реализуем автомат состояний. Понимаешь ?
Только автомат не будет описан явным образом.
Что приведёт большому числу ошибок,
которые исправить будет не в человеческих силах.
В результате проект будет настигнут крахом.
Я такое в реальности наблюдал.
---
Сложность автомата зависит не сколько от числа состояний,
сколько от числа переходов и сложности логики, их определяющей.
Так что 20 состояниями нас не запугать.
---
Как, интересно, реализована внутри сетевая карта компа ? А DMA-контроллер, например ?
Там же автоматы, с программированием на уровне микро-программ.
А у нас есть c++ с комфортом. Всё будет хорошо.