Если вы хотите существенно затруднить понимание программы:

  • Определите состояние программы с помощью 5-6 глобальных булевых переменных
  • Присваивайте этим переменным разные значения в ходе выполнения программы

Собственно всё, больше ничего делать не надо, чтобы сделать сложным отладку такой программы.