一見これはBUTTON(2)で代用ができそうですが、BUTTON(2)AND 15の値が0以外の時にパターン切り替えを行うようにすると斜め移動中に十字ボタンを離さずに左(もしくは右)を押した場合には向きと方向が一致しないという不具合が発生してしまいます。 これを解消するには離した瞬間を取得するBUTTON(3)も必要になります。そんなことをしなくても、前回と異なる十字ボタンを押しているかどうかだけで判定が可能になるため上記のプログラムの方が初心者には分かりやすいと思います。 あと!Bの「!」は論理反転(論理否定)を示していて「Bの値が0の時は1」「Bの値が0以外の時は0」になります。 IF B THEN ~ならばBの値が0以外の時にTHEN以下を実行しますが、IF !B THEN ~ならばBの値が0の時にTHEN以下を実行するということです。