うんこゲーム2003

うんこゲーム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が打つ手の種類
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は「一手詰みをものにする」ための手を含め、七
種類の手を打ちます。この節でその種類と、そのため
の条件を説明します。
(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)はどんどん進化し
、ユーザーの創作意欲を刺激しています。
ただこのソフトは言語の構文さえあっていればコンパ
イルを通してしまうので、複雑な計算には向いていな
いでしょう。今回一番大変だった作業はデバッグであり
、コンパイラーの弱さに手こずりました。
しかし、画像処理とスクリプト編集を同一のソフトでで
きたり、アニメーションを容易に作れる点など優れた点
は数多く見受けられました。