RPNでゲームを作ろう(15)

前回(2月22日)の続きです。今回がこの連載の最終回です。

前回の予告通り、SF および CF 命令について説明します。

SFは「Set Flag」、CFは「Cancel Flag」を意味していて、その名前の通り、フラグの設定(立てる)および解除(落とす)に関係する命令です。この種のフラグ関係の命令には、もうひとつ、「FS?」があります。これは、フラグが立っているか落ちているかの条件判断をして、プログラムを分岐させるための命令です。

ところで、フラグとはなんでしょうか? ということはググればいろいろ出てきますので、詳細は省きますが、一言で言えば、計算機やプログラムの状態を記憶している変数のようなものです。ただし通常の変数と違って「立っている」と「落ちている」の二つの値しかとりません。そしてHP 35sでは、0番から11番までの、12個のフラグがあり、予めそれぞれの役割が決まっています。

それぞれの役割は大まかに以下のようになっています。

0番〜4番: 決まった役割はなく、ユーザーが自由に使える。このフラグを立てると、画面の上の方に、対応する数字が表示される。
5,6番: オーバーフローに関係する制御用
7〜9番: 分数の表示方式の制御用
10,11番: 方程式(EQN 等)の実行方法制御用

これらのうち、今までのプログラムの中で使ってきたのは10番でした。これは、実は、プログラム中に方程式(EQN)が書いてあったときに、それを計算して結果をスタックに格納するか、計算しないで式をそのまま表示するかを切り替えるためのフラグでした。この10番のフラグが立っているとき、つまり SF 10 を実行した後は、方程式は計算されず、そこに書いてあること、つまり「GAME-OVER」のようなものが、そのまま画面に表示されます。

なお、これまでのプログラムでは、何かを画面に表示する場合には、毎回

SF 10
「表示したいこと」
CF 10

と三行で書いてきました。これは、最低限必要なときにだけフラグ10番を立てて、それ以外の時には、もし方程式が出てきたら、ちゃんと計算してくれるようにと考えて、そうしたものです。

これで、この連載「RPNでゲームを作ろう」を終わりにしたいと思います。おつきあいいただいてありがとうございました。またそのうち、35sを使って何かプログラムを作る連載を考えたいと思います。それまでは、しばらく普通の(?)記事を書こうと思います。

…。

しかし考えてみれば、このblogって、そもそも日記なんですから、そこに「連載」っていうのも変な話ですね。

まあでも、そんなこと気にせず、またそのうち「連載」したいと思います。