じゃぁ、問題のあった左ボタンのほうだけを見てみましょう。 もし元のコードで、一番左端(PX=0)にいたときに左ボタンをおすとPXの値はどうなるでしょうか? IF B AND 4 THEN PX=PX-1 そう、PX=PX-1 → PX=0-1 → PX=-1 となります。 するとその直後の行でおこなっている LOCATE PX,PY のPXに-1が入ってしまいます。LOCATEにマイナス値を入れてしまうとエラーになってしまうのです。 そこで、 IF B AND 4 THEN VX=-1 となおしました。 すると、PXの値はこの時点では変化しないので、エラーは発生しません。 LOCATEの下の行の PX=PX+VX で 初めてPXの移動が発生し、PX=0+-1 → PX=-1 となります。 (続く)