ボケは十分に投下されてるようなので普通のコメントを。 プログラム構造をぐちゃぐちゃにしないためには、作ろうとしているものの全体を把握した上で、シンプルな要素と関係性で作るのがポイントです。 何を変数で管理するかとか、どこからどの関数を呼ぶかとか。 ただ、作る前から全体像を把握したり、シンプルな管理を考えたりするのは結構高度で、普通はある程度経験が無いとできません。 なので「なるべくシンプルに」を心がけつつ、結局ぐちゃぐちゃになっても「反省材料にして次に活かせばいいや。どんどん作っていこう」くらいが丁度よいんじゃないかと思います。