話が落ち着いた後で蒸し返すようで申し訳ありません。以下に述べることは、善し悪しの問題では無く、プログラミングの好みの問題なので、気を悪くしないでください。プログラムの善し悪しは、正しく動くかだと私は、考えます。 21行から24行までBUTTON(3)関数が4連続で呼び出されています。これは、後ろのボタン押下判定と関連したものと思います。しかし、同一フレーム(約1/60秒)の間、読みとるボタンの状態は変わりません。したがって、1回読み出せば、同一フレーム内であれば、使い回しが出来ます。よって、22~24行は不要です。その代わり、26から28行の変数B,X,YをAに変えます。また、21行目の前か後にWAITを入れます。これで、同一フレーム内での処理を1回に限定します。58から61行も同様に変数Qだけを使えば良いと思います。その他の、WAITは、演出として値を決めれば良いと思います。