Это классический "big loop", ничего нового. Приходится цитировать жалких финских студентов ибо за дцать лет тема сисек так и не раскрыта (http://en.wikipedi …software_architectures):
http://caxapa.ru/279767.html А с флагами лучше завязывать: http://caxapa.ru/270373.html Чревато глючным спагетти-кодом. Вначале проектируется автомат на бумажке, потом тупо кодируется. Принцип один -- разделяй и властвуй. В т.ч. проектирование и непосредственно программирование.