§3:ゲームを作ってみる

§3.2:CGIによるゲームの注意点

CGIがプログラムは、アクセスされると、プログラムの最初から最後までを実行して、 それで終わってしまいます。 これは、前回どういう操作をしたのかを、CGIは覚えてないということです。
例えば、カードゲームの場合なら、現在のカードの位置、誰がどのカードを持ってるかなどを プログラムは覚えてないのです。
したがって、現在どういう状況なのかをプログラムに教える必要があります。 これには、いくつか方法があります。

  1. データをファイルなどに保存する
  2. 状況によって次にアクセスプログラムを変更する
  3. 現在の状況をデータとしてプログラムに送る

1.の方法はさらに2つの方法があります。 サーバー側に保存するのと、クライアント側(アクセスした側)に保存する方法です。 前者は、掲示板の書き込みログみたいなものですが、ゲームの記録をいちいち保存するのは向いてないでしょう。 後者は、Web通販で誰がどんな買い物をしたか、などの記録に使われてます。 しかし、ここでは、これらの方法は説明しません。

2.の方法は、すべての状況ごとにプログラムを用意するのは、あまり現実的じゃないですが、 以下に紹介する(予定の)プログラムでは、初期設定と、その後の操作でプログラムファイルを分けます。 初期設定では、例えばゲームの駒をランダムに並べるなどのプログラムが必要ですが、 ゲームを始めた後は必要ないので、分けたほうが良いと思います。

3.の方法は、ゲーム盤のどこにどの駒があるのか、といった情報を毎回データとして送ります。 プログラムは、このデータを読んで、次に何をするのかを決めます。 このデータは、hiddenタグを使って、ブラウザでは見えないようにします (ページのソースを見ればバレますけど)。

それでは、具体的な例を見てみましょう。

NEXT: §3.3:数を選ぶゲーム

Previous: §3.1:どんなゲームができるか


Foundation of CGI

haruka@harukaze.net

Let iCab smile