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
-, , ,

執筆者:

関連記事

backbone-railsのscaffoldで生成されるコードでルーティングとCRUDの処理をどうやってるのか読んでみた

By: asobi tsuchiya   目次1 はじめに2 サンプルの準備3 初期化4 ルーター5 READ6 CREATE7 UPDATE8 DELETE はじめに backbone-r …

Backbone.jsからRails3.2へのPUTに対して204(no content)が返ってくる問題

By: Bernardo Chang – CC BY 2.0   UPDATEするときRailsはデフォルトでJSONには何も返さないのがデフォルトぽい [crayon-58b2 …

no image

Rails3.2でBackbone.jsとPrivate_pubでToDoアプリをリアルタイム化(できた!)

参考 Rails3.2でリアルタイムメッセージング~Private_pub、Faye Rails3.2とBackbone.jsでToDoアプリを作ってみた~backbone-on-rails &nbs …

RailsでこんにちはBackbone.Marionette

By: palindrome6996 – CC BY 2.0 自分の中でmarionette熱がだんだんと高まりつつあり、特徴的なItemView、CollectionView、Compo …

Rails3.2とBackbone.jsでGoogle CalendarライクなカレンダーにCRUD~fullcalendar-rails

目次1 前回2 READ ~データベースからイベントを読み込んでカレンダーに表示する3 CREATE~カレンダーからイベントを登録する4 UPDATE1~カレンダーのイベントをクリックしてイベントを編 …