いものやま。

雑多な知識の寄せ集め

YWF

変種オセロの思考ルーチンを作ってみた。(その3)

昨日は貪欲法のAIを作成。 今日はミニマックス法のAIを作成する。 ミニマックス法 昨日の貪欲法は、「1手読んで、その中で一番いいと思われる手を選ぶ」というもの。 ただ、実際には1手読むだけだと、簡単に取り返されてしまうということがよく起こる。 そこ…

変種オセロの思考ルーチンを作ってみた。(その2)

昨日はランダムAIを作った。 今日はもうちょいマシな思考ルーチンを作る。 貪欲AI すぐに思いつくのは、可能な手をそれぞれ実行してみて、その中で一番よさそうな手を選ぶというもの。 「選択肢の中からとりあえず一番いいものを選ぶ」というのを「貪欲法」…

変種オセロの思考ルーチンを作ってみた。(その1)

変種オセロ「良い子悪い子普通の子」については、以下を参照。 今回は、この変種オセロの思考ルーチンを作っていく。 ランラムAI もっとも簡単なAIは、これ。 実行可能な手からランダムに返すだけのもの。 #!/usr/bin/env ruby require_relative "board" req…

変種オセロを考えてみた。(まとめ)

とりあえず、まとめ。 これまでの各記事は、以下から。 変種オセロを考えてみた。(その1) - いものやま。 変種オセロを考えてみた。(その2) - いものやま。 変種オセロを考えてみた。(その3) - いものやま。 変種オセロを考えてみた。(その4) - いも…

変種オセロを考えてみた。(その4)

ボードの実装が出来たので、今日は人同士が実際にこのゲームを遊べるようにしてみる。 CUIだけどw ボードの表示 まずは、ボードを表示するためのモジュールを実装。 module YWF module BoardViewer COL_INDEX = " 1 2 3 4 5 6 7 8 9" LINE = " +---+---+---+…

変種オセロを考えてみた。(その3)

昨日の続き。 今日は残りの詳細な処理について。 ボードの実装(続き) 走査メソッド まずおさえておきたいのが、走査メソッド。 # 続き private def traverse_to(row, col, direction, &block) # NOTE: # 'traverse_to' accesses to 'WALL', # so 'color' c…

変種オセロを考えてみた。(その2)

ルールは昨日書いた通り。 さっそくSwiftで書き始めてもいいんだけど、いきなり書き始めるのも大変なので、まずは書き慣れたRubyで書いてみて、感触を確かめてみようかなと。 ボードの実装 まずはボードの実装から。 データ構造と初期化 module YWF class Bo…

変種オセロを考えてみた。(その1)

最近、Swiftを勉強しようと考えてるんだけど、ただ勉強するだけだとツマラナイ。 どうせならゲームとかでも作りながら勉強した方が面白いかなと思って、ちょっとゲームを考えてみた。 変種オセロ「良い子悪い子普通の子」 考えたのは、オセロの変種。 オセロ…