あとボタン操作も、不必要に複雑な記述になっています。
慣れてくるまでは簡単で読みやすい、例えば
IF BUTTON()==1 THEN BY=BY-1
IF BUTTON()==2 THEN BY=BY+1
IF BUTTON()==4 THEN BX=BX-1
IF BUTTON()==8 THEN BX=BX+1
IF BUTTON()==0 THEN RETURN
という書き方でいいと思います。
ついでにコメントすると、上記ソースの43行目は不要だと思います。というか無意味です。
もし上下左右ボタンを押してないならという判定をしたいのだったら、
IF (BUTTON() AND 15)==0 THEN GOSUB @NOMOVE
になります。なんでこうなるのかはビット演算のついて説明しなくてはならず現段階では難しいと思うので省略します。
また正常に動作してもGOSUBの先が何もなくRETURNで返ってきているだけなので、今のままではどちらにしても不要だと思いますし、とくに予定がないなら削除してしまった方がいいような気がします。今はなるべくシンプルにまとめることを考えた方がいいと思うので〜。
そうです〜。プログラムの流れを意識するとより最適なプログラムにたどり着けますし、その方がシンプルになるので自分でも理解しやすくバグも少なくなるのです〜。
まあ要件的には間違えた時もメッセージを出したいので、
IF A+B != C THEN ?"まちがえ":GOTO @KOTAE
みたいな感じがいいですけど、今回の趣旨は流れと変数の使い方なので正解です。
まあ変数の使い方という意味では、
ANS=A+B
として答えを変数に求めておいてから、
IF C != ANS THEN〜
の方が変数を使ってるんで学習用としてはいいかなと思いますが、一応そんな感じでした〜。
こういう風に単純なプログラムでも書き方は色々あって、書き方によってプログラムはシンプルにでも複雑にでもなったりするので、よりベストな書き方はないかなと考えたり意識してみると今後役に立ってくると思います〜