FOR〜NEXTは便利なので出来れば早いうちに覚えたいところですね〜。 あとぱっと見に気になるのはカーソルを消すためのPRINTが多いところですね。ここをまとめればスッキリすると思います。 カーソルは座標変更前ならLOCATE 28,20+Y:PRINT " "で消せるので、例えば12行目の後(13行目のIFがY座標変更しているのでその前のタイミング)ぐらいで今の座標を変数に保存しておいて、25行目のVSYNC前辺りで座標に変化があったら消すようにすればプログラム中の消す処理がかなりなくなってスッキリすると思いますよ。 つまり12行目の後辺りに、PY = Yと保存しておいて、VSYNCの前辺りで、 IF Y != PY THEN LOCATE 28,20+PY:PRINT " " とすればプログラム中のその他のPRINT " "関係はほとんど消せると思いますよ。