ACLSやCLS命令を実行すると画面をCHR$(0)で埋め尽くします。
47行目のCHR$(XC)!=" "が成立するためMXには移動前のX座標が
代入されるためキャラクターは移動しません。
画面の消去を
LOCATE 0,0:PRINT " "*50*30;
として画面上を" "で埋め尽くすか、キャラクターの消去を
PRINT CHR$(0);に変更して、IF命令での判別を
IF XC!=0 THEN MX=XX
とCHR$(0)を検出できなかったときに移動前の座標に
戻すようにしたらいいかと思います。
Y座標も同様です。
0そうだね プレイ済み