オセロ(リバーシ)の制作
自分が今年度から所属している研究室では、毎年4年生+αでオセロ大会がある。
各自が自由にオセロの思考エンジンを作ってきて戦わせるというもの。
そのオセロ大会は今週の木曜日。
告知されてからかなり長い期間あったのでグダグダと作ったり飽きたりしていたが、ようやく本腰を入れることにした(遅い)。
一番はじめはPHPで作ってこのサーバ上で動かしていた。
しかしここはXREAの共有サーバ、重い処理をさせるのはよろしくないと思い却下。
こういう機会に新しい言語を勉強してみるのも本当は良いのだろうけど、なかなか気力が沸かずにActionScript2.0を利用。
ActionScriptは中学生の頃からいじっていたから、得意とは言えないけれどそれなりに馴染みがある。
オセロのAIの解説サイトを参考にしながら開放度の計算やミニマックス法による先読みを実装したりしたら、ものすごく重くなった…。余裕で3分程度待たされる。こんなもので大会に出たら、みんなに怒られてしまいそうだ。
オマケにちゃんと考えずにおかしな計算を実装して、ぐちゃぐちゃになってしまった。
ウェブの上に転がってるどのオセロAIにも勝てない、もはや自分に有利な手を選んでいるのかすらわからない。
そもそも何でActionScript2.0なんて、古いものを使っているのか…。
そして先週末。もう一回ちゃんと作り直そう、今度はActionScript3.0を使おうと決意。
ActionScript2.0と3.0では違いが多すぎるから、これまで食わず嫌いしていた。
当然だが3.0の方が実行速度が速い。1.0/2.0に比べて約10倍速いらしい。
数年間放置されていたActionScript3.0の解説書を開き、これまでに書いたスクリプトを移植。
AIの部分はもう一度はじめから作り直して、とりあえず難しいことはせずに位置による重み付けとαβ法を実装。
まだちょっとアヤしい部分はあるが、ようやくウェブ上のいくつかのオセロAIに勝てるようになった。
もうこれで終わりにしたい気もするけれど、開放度やその他もうちょっと実装して実験してみよう…。
詳細! ActionScript 3.0入門ノート 価格:3,990円(税込、送料別) |