懐かしき日の思ひで Aチーム リーダー 福島則行 吉武優一郎 水谷聡 石松孝之 近藤悠介 うんこゲーム2003 懐かしき日の思ひで Aチーム リーダー 福島則行 吉武優一郎 水谷聡 石松孝之 近藤悠介
何故うんこゲームか? ルールが分かり易く、みんなが簡単になじめるゲームを作りたいと考えた。どうせならWEBで公開しても、人気が出るくらいのコンテンツの開発を目指した。 中学、高校時代に一世を風靡したうんこゲームならいけると考えた。 何をしようか 考えた結果 ふひゅゆ」
うんこゲームの概要 ここでは、うんこゲームのルールや遊び方を説明します。 ルール ・人とcpuが交互に「う」「ん」「こ」の文字を5×5の盤上に置いていきます ・先に「うんこ」と一列に並べたほうが勝ちになります(右図)。 ・どちらも勝てないまま置く場所が無くなったら引き分けです。 操作方法 ・人の手順時は画面を一度クリックしたら置くべき文字がでてきます。 もう一度クリックしておきたい場所に置きます。 ・cpuの手順時は一度クリックすると勝手に置きます。
開発環境、動作環境 ここでは、うんこゲームの開発環境と動作する環境を説明します。 開発環境 アニメーション、スクリプト共にFlashMXを使用しました。 このソフトは元々アニメーション製作用のソフトでしたが、 ActionScriptという独自の言語を用いてスクリプトを作ることができます。ゲームに必要な画像処理と計算編集が同時にできるというメリットがあります。 動作環境 macromedia社が無料配布している Flash Playerがインストールされいる必要があります(こちらで確認しているのはVer.6以降)。 ブラウザはIE6でしか確認していませんが、FlashPlayerのプラグインが正常に動作していれば問題ないと思われます。 CPUが366MHz、メモリが32MBの環境でもスムーズに動作します。ファイル自体は容量も小さく、計算負荷も小さいので動作が鈍ることはないようです。
CPUが打つ手の種類 CPUは、次の一手として七種類の手を打ちます。この節でその種類と、そのための条件を説明します。 ここではCPUは常に「こ」の順番であるとします。 (A)一手詰みをものにする (B)相手のリーチを防ぐ (C)相手のリーチになる手は打たない (D)ダブルリーチを仕掛ける (E)三手詰みをしかける (F)ダブルリーチを仕掛ける準備をする (G)ランダムに打つ ・(C)の条件は(D)~(G)で適応されます。 ・(A)が最優先の手であり、以下(G)まで優先度が下がります。 例えば(A)と(B)の条件が同時に満たされると(A)を選択します。 ・このゲームはCPUの強さを三段階で選べますが、 強 …… (A)~(G) 中 …… (A)~(D)、(G) 弱 …… (A)~(B)、(G) の条件が適応されます。
CPUが打つ手の種類 CPUは、次の一手として七種類の手を打ちます。この節でその種類と、そのための条件を説明します。 ここではCPUは常に「こ」の順番であるとします。 (A)一手詰みをものにする (B)相手のリーチを防ぐ (C)相手のリーチになる手は打たない (D)ダブルリーチを仕掛ける (E)三手詰みをしかける (F)ダブルリーチを仕掛ける準備をする (G)ランダムに打つ ・(C)の条件は(D)~(G)で適応されます。 ・(A)が最優先の手であり、以下(G)まで優先度が下がります。 例えば(A)と(B)の条件が同時に満たされると(A)を選択します。 ・このゲームはCPUの強さを三段階で選べますが、 強 …… (A)~(G) 中 …… (A)~(D)、(G) 弱 …… (A)~(B)、(G) の条件が適応されます。
CPUが打つ手の種類 CPUは、次の一手として七種類の手を打ちます。この節でその種類と、そのための条件を説明します。 ここではCPUは常に「こ」の順番であるとします。 (A)一手詰みをものにする (B)相手のリーチを防ぐ (C)相手のリーチになる手は打たない (D)ダブルリーチを仕掛ける (E)三手詰みをしかける (F)ダブルリーチを仕掛ける準備をする (G)ランダムに打つ ・(C)の条件は(D)~(G)で適応されます。 ・(A)が最優先の手であり、以下(G)まで優先度が下がります。 例えば(A)と(B)の条件が同時に満たされると(A)を選択します。 ・このゲームはCPUの強さを三段階で選べますが、 強 …… (A)~(G) 中 …… (A)~(D)、(G) 弱 …… (A)~(B)、(G) の条件が適応されます。
CPUが打つ手の種類 CPUは、次の一手として七種類の手を打ちます。この節でその種類と、そのための条件を説明します。 ここではCPUは常に「こ」の順番であるとします。 (A)一手詰みをものにする (B)相手のリーチを防ぐ (C)相手のリーチになる手は打たない (D)ダブルリーチを仕掛ける (E)三手詰みをしかける (F)ダブルリーチを仕掛ける準備をする (G)ランダムに打つ ・(C)の条件は(D)~(G)で適応されます。 ・(A)が最優先の手であり、以下(G)まで優先度が下がります。 例えば(A)と(B)の条件が同時に満たされると(A)を選択します。 ・このゲームはCPUの強さを三段階で選べますが、 強 …… (A)~(G) 中 …… (A)~(D)、(G) 弱 …… (A)~(B)、(G) の条件が適応されます。
CPUは「一手詰みをものにする」ための手を含め、七種類の手を打ちます。この節でその種類と、そのための条件を説明します。 (A)一手詰みをものにする (B)相手のリーチを防ぐ (C)相手のリーチになる手は打たない (D)ダブルリーチを仕掛ける (E)三手詰みをしかける (F)ダブルリーチを仕掛ける準備をする (G)ランダムに打つ ・(C)の条件は(D)~(G)で適応されます。 ・(A)が最優先の手であり、以下(G)まで優先度が下がります。 例えば(A)と(B)の条件が同時に満たされると(A)を選択します。 ・このゲームはCPUの強さを三段階で選べますが、 強 …… (A)~(G) 中 …… (A)~(D)、(G) 弱 …… (A)~(B)、(G) の条件が適応されます。
CPUは「一手詰みをものにする」ための手を含め、七種類の手を打ちます。この節でその種類と、そのための条件を説明します。 (A)一手詰みをものにする (B)相手のリーチを防ぐ (C)相手のリーチになる手は打たない (D)ダブルリーチを仕掛ける (E)三手詰みをしかける (F)ダブルリーチを仕掛ける準備をする (G)ランダムに打つ ・(C)の条件は(D)~(G)で適応されます。 ・(A)が最優先の手であり、以下(G)まで優先度が下がります。 例えば(A)と(B)の条件が同時に満たされると(A)を選択します。 ・このゲームはCPUの強さを三段階で選べますが、 強 …… (A)~(G) 中 …… (A)~(D)、(G) 弱 …… (A)~(B)、(G) の条件が適応されます。
以後でCPUは常に「こ」の手順であるとします。 ここではどうやって次の一手を決めているかのアルゴ リズムを説明します。 CPU思考に関するスクリプトの概要 前にも述べたとおり、CPUは大きく分けて七種類の手を打ちます。計算のアルゴリズムはどれもよく似ています。 この節ではCPUが一手詰みをものにする(つまり勝つ)ためのアルゴリズムを例にとってCPU思考を解説します。 以後でCPUは常に「こ」の手順であるとします。
CPUが現在の手順「こ」で勝つためには以下の条件が必要です。(右図) (1)盤上に「う」の文字がある。 (2)「う」の横に「ん」の文字がある。 (3)「う」の横の「ん」のさらに横には文字が置かれていない。 まず(1)の条件のため、CPUは盤上の25マスを順に探して行き「う」の文字を探します。 「う」が見つかるとその隣(合計8マス)に「ん」の文字を探します。 「ん」が見つかるとさらに隣に文字が置けるかどうかを判断します。 (3)まで満たされたときに「こ」の文字を実際に空いているマスへ打ち、勝つことになります。
しかし、画像処理とスクリプト編集を同一のソフトでできたり、アニメーションを容易に作れる点など優れた点は数多く見受けられました。 CPU思考について 作り終えた感想などです。 FlashMX このソフトは自由なインターフェースをもつHPづくりにとても便利です。ボタン、アニメーション、ゲームなどをブラウザに依存することなく表示できます。 今回Flashを使ったのは 、前にも書いた通りこのソフトの利便性を知りたいという点、HP上で不特定多数に体験してもらえると思ったことの二点です。 FlashMXのCP言語(ActionScript)はどんどん進化し、ユーザーの創作意欲を刺激しています。 ただこのソフトは言語の構文さえあっていればコンパイルを通してしまうので、複雑な計算には向いていないでしょう。今回一番大変だった作業はデバッグであり、コンパイラーの弱さに手こずりました。 しかし、画像処理とスクリプト編集を同一のソフトでできたり、アニメーションを容易に作れる点など優れた点は数多く見受けられました。