$3 ゲームを作ってみる

3-2 CGIによるゲームの注意点

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

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

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

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

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

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


Next: 3-3 簡単なパズル

Previous: 3-1 どんなゲームができるか

Contents


Foundation of CGI Page

春風はるか haruka@harukaze.net