Backbone.js

三目並べゲームのAI〜原始モンテカルロ法

投稿日:2017年2月5日 更新日:

ゲーム用のAI

三目並べのAIを考えてみた.
有効手をリストアップして、おのおの100回位ずつランダムでゲームを最後までやってみて、勝利数と引分数の合計の高い手を選択するようにしてみた.

参考: JavaScript でオセロを実装する(原始モンテカルロAI編)

シャローコピー

すでにあるボード情報のモデルのデータを変えてしまうと、Viewと結びついていて、盤面の表示に出てしまうので、x,y,valueの同一な別のオブジェクトを作成する(shallow_clone)というメソッドにまとめた.

AI

有効手をeachでまわして、100回ずつ試行して、1勝1ポイント、引き分け0.5ポイントでカウントする.
もっとも高いポイントの手を選択する.

勝率

さきのAIと勝率を比べてみた.

先手の場合、勝数は49/100、引き分け数は51/100
後手の場合、勝数は9/100、引き分け数は54/100

先手がだいぶ有利だと思われるけど、先手では負けなし、逆に後手では9勝をしたので、微妙に強いのか、誤差の範囲か.

試行回数を100回から200回に増やしてみたが、

先手の場合、勝数は44/100、引き分け数は56/100
後手の場合、勝数は9/100、引き分け数は52/100

強さの向上はみられなかった

-Backbone.js
-, , ,

執筆者:

関連記事

Rails4でMarkdownをリアルタイムプレビュー〜backbone-on-rails&marked.js

By: Kool Cats Photography over 2 Million Views – CC BY 2.0 目次1 前回2 サンプルアプリ3 Gemfile4 generate5 …

Backbone.jsからjQuery UIのDialogを使う例

Backbone.js楽しくなってきた 部品ごとのクラスをつくって、それに飾りとイベントをつけて、あとは上位部品から呼び出してくっつけるだけ jQuery UIのダイアログの場合は、公式のサンプルだと …

backbone-relationalで関連するコレクションをRails3.2のAPIに投稿〜accepts_nested_attributes_for

By: Mike Baird – CC BY 2.0   backbonerelational.org/ Backbone-relationalを使って関連するコレクションをまと …

Backbone-formsをさわってみた

github.com/powmedia/backbone-forms backbone-formsの特徴 簡単なスキーマでフォームを生成 バリデーション ネストしたフォーム 使えるそしてカスタマイズ可 …

Backbone.jsでView自身にdata要素をもたせる

By: See-ming Lee – CC BY 2.0 目次1 外から追加2 最初からView内で設定 外から追加 $.dataはうまくいかないので、attrでやった [crayon-5 …