ソースプログラムを覗いてみよう!! |
60代の方々は、若いころの流行りだったProlog。懐かしいのではないでしょうか。
今でも提供されているAZ Prolog でプログラムを書いてみました。
複数マッチすべきところが一つしか表示されないなど
気に入らないところはありますが、あくまで例題ですのでご勘弁ください。
なお、推移的関係(兄または姉の兄もまた兄であるような関係)では
述語を自動生成していますが、述語定義で対応するほうが
スマートかもしれません。
Prologでゲームソフトを作りたい人のために、まずカーソル移動の方法を
簡単なプログラムで示します。
上記 2 と同じく、Prologでゲームソフトを作りたい人のための例題です。
例題では全角の●文字を動かしてボールの移動に見立てています。
Prologでライフゲームを書いてみました。
画面表示が若干遅いですが、全面書き直しているせいだと思います。
既に表示されている部分と異なる部分だけを表示すると速くなると思いますが、
複雑になりますのでやめました。
興味ある人はチャレンジしてください。
例題プログラムは配列を使っていますが
「Prologで配列を使うのは邪道だ」とのご意見がありましたので、
とにもかくにも配列を使わないで表現してみました。
【配列を使わない例】
セルを述語として表現し、述語がなければ 0, あれば 1 とみなしています。
(2015/06/28 バグ修正および述語の整理を行いました)
Prologでインベーダゲームを書いてみました。
効果音が出ないのでちょっと迫力がありません。
Windows APIを利用することも考えましたが、
初心者のための例題としては相応しくないのでやめました。
興味ある人はチャレンジしてください。
AZ Prologではアトムに日本語が使えるので、
日本人にとってはこちらが読みやすいかも…。
【アトムに日本語を使った例】
やはり、Prologではこの手の問題がスッキリ書けますね。
サイコロの表示で工夫しました。
どうです。小さいプログラムでしょ。<(`^´)>
Prologの基本的な述語だけで書きたいので、
手の形を無理やりキャラクタで描きました。
どうですか。グー、チョキ、パーに見えますか?