ぼく初心者だからテキトーに考えたんだけど、そんなにグローバル変数使いたくないんなら全部main関数内で変数定義して再帰関数で使いたかったら参照渡しすればええんでない?