ソコまでアヤシイ所が絞られても変数をいじっている所が見つからないとなると、ナニカ根本的な所でミスが有るような気がします。 「攻撃」以外にのコマンドに「回復」が有ったりしませんか? 有ると想定して、その回復値が「+12」だったりしませんか? たとえば、サブルーチンで組んであると想定すると、「攻撃」の下に「回復」のルーチンがあり、「攻撃」のルーチンに「RETURN」が無いため、そのまま「回復」のルーチンを通り、「回復」のルーチンの「RETURN」で戻っている。。そんな可能性も考えられます。 対処としては、要所要所に体力の変数を確認表示するプログラムを書いて、チェックしてみる手も有ります。 表示が速くて分らなかったらWAITも入れて下さいね。 変数の値が想定通りなら、「表示の部分で違う数値を表示している」可能性もありますよ?