詳しい内容まで読まなくて結構です。全体が見えなくなってきます。多少内容は理解できると思います。コメントが書いてないんですよね。使ったりして、後で見る人たちが苦労します。コメントを書きましょう。分けることにしましょう。ようになると思います。関数がスッキリして、少しは全体がわかってきたと思います。これは、メイン関数が目次の役割をしているためです。つかみにくくなってしまっています。どこから来たのかすぐにはわかりません。グローバル変数でした。なんか、ひっかけ問題みたいですね。処理するかをプログラム言語で文章にしたものです。わかりにくいプログラムになってしまいます。オブジェクト指向の登場となるわけです。集めて「何か」を表現します。データ値(プロパティ)のように扱います。(難しい用語の意味は追求しなくても構いません。プロセス主導とデータ主導をうまく融合しています。