Flashリバーシ
「遊び方」
"黒"、"白"ボタンを押すとゲームが開始します。黒が先行で白が後攻になっています。コンピュータのレベルは0~2まであって、0が簡単、1が普通、2が難しい、となっています。遊びたいレベルの数字のLvボタンを押して"黒"、"白"ボタンを押してゲームを開始すると難易度が切り替わります。Lvボタンを押すだけでは難易度は切り替わらないので要注意です。
上の"成績"ボタンを押すと今までのコンピュータとの対戦成績を見ることができます。記録に残るのは、各レベルの黒と白ごとの、勝ち数、負け数、勝ったときの最大石差、勝率、となっています。右下の"消す"ボタンを押すと記録を消すことができます(一度消すと記録は元に戻らないので要注意です)。この対戦記録はあくまでプレイした人のコンピュータに残る記録なので、ブログを見ている複数の人で記録を共有することはできません。
あと、プレイヤーが石を打てるところが無い場合は、コンピュータが勝手にプレイヤーを飛ばして、続けて打ってきます。逆にコンピュータが打てるところがないときはコンピュータは何もしないのでそのまま打ち続けてください。
「仕様」
プログラムはFlashのActionScript3.0で作っていて、Flash Player9以降でないと動作しません。動かない人はAdobeのサイト
からFlash Player最新バージョンにアップグレードできます(もちろん無料です)。
今回のFlash版は前回のJavaScript版に比べると難易度が高くなりました。レベル0では5手先の自分の石数が最大になるように、レベル1は5手先の局面を簡単な評価テーブルを用いて一番有利になるように(前回のJavaScript版のレベル2に相当します)、レベル2では5手先の局面を、開放度、取得可能手数、確定石数、危険手数、を基に一番有利になるように、それぞれ手を打ちます。レベル2はさらに終局11手前から完全読みを行います。このレベル2はちょっと難しくてリバーシ経験者じゃないと楽しめないかもしれませんが、リバーシ上達を目指してたまにでも挑戦していただければ幸いです。
あと、対戦記録はPCのFlashの共有オブジェクトとして記憶されますが、共有オブジェクトのスペースがいっぱいになったり、ユーザが設定で共有オブジェクトへの書き込みを禁止していた場合などは記録はできないこともあります。
「ブログパーツの貼り付け方」
ブログパーツとして利用されたい方は下のHTMLをコピーしてプラグインエリアやフリーエリアに貼り付けてください。FC2ブログの方であれば「共有プラグイン」から簡単にダウンロードできます。「iframe」の利用を禁止している楽天とYahoo!ブログ以外のメジャーなブログサービスならおおよそ動くかと思います。ブログ以外のホームページなどでも利用できます。
<script language="JavaScript" src="http://orfeon.jp/blogparts/Othello/Othello.js"></script ><div align="right"><font size="1"><a href="http://mitti0.blog76.fc2.com/blog-entry-165.html
" target="_blank">by mitti0</a></font></div>
もし上のHTMLを貼り付けても動かなかった場合はこちらのHTMLを貼り付けてみてください。
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab
" width="164" height="204" id="ants" align="middle"><param name="movie" value="http://orfeon.jp/blogparts/Othello/OthelloNoJS.swf
" /><param name="quality" value="high" /><param name="bgcolor" value="#ffffff" /><param name="wmode" value="transparent" /><embed src="http://orfeon.jp/blogparts/Othello/OthelloNoJS.swf
" quality="high" wmode="transparent" bgcolor="#ffffff" width="164" height="204" name="ants" align="middle" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer
" /></object><div align="right"><font size="1"><a href="http://mitti0.blog76.fc2.com/blog-entry-165.html
" target="_blank">by mitti0</a></font></div>
「参考図書」
今回は初めてのFlashプログラミングということと、もう少し強いリバーシプログラムを作ってみたいということで、以下の2図書を参考にしました。
ActionScript3.0のリファレンスガイドはAdobeのサイトに載っているので、Flashプログラミングについてある程度知識のある方には必要ないかもしれませんが、この本が数少ないActionScript3.0参考書であることと、開発環境のセッティングに始まり、ゲームを作る際に必要な基本的な機能についてソースコードとセットで広くおさえられているので、とりあえずFlashで何かゲームを作ってみたい入門者の方にはおおまかな言語の概容をつかむ上でも重宝すると思います。ただし言語の仕組みなどの内容には突っ込んでいないので、プログラミング初心者の方は言語的に似ているJavaなどをあわせて勉強するとよいかもしれません。
リバーシを強くするために評価関数の仕組みについて知りたくて読んでみました。自分は評価関数の箇所しかあまり読んでいないのですが、探索アルゴリズムから評価関数、実装設計まで、幅広く扱っていて、コード付で解説されているので仕組みがとても理解し易くて役立ちました。リバーシに限らず、ゲーム探索の勉強を始めるにはうってつけの本のように思います(ただ自分の場合、リバーシの基盤となるボード構成で違っていた部分が多かったのでコード自体は使えませんでしたが…)。ちなみにこの本の著者は(執筆当時)現役の大学生だというからオドロキです。