リバーシ 戦略。 Steam:リバーシクエスト2

元世界チャンピオンが教える!超戦略的オセロ必勝法

リバーシ 戦略

ここのところワーッと一気に仕事が舞い込んできて、嬉しい悲鳴(?)を上げている筆者です。 忙しい時はついつい情報収集や勉強がおろそかになりがちです。 1日10分でも良いから勉強に充てる時間を作らなきゃいけないなーと思いつつも、納期が迫っている案件も放っとけないというジレンマを抱えちゃうんですよね。 実務は間違いなく技術力の向上に役立ちますが、実務だけでは視野が狭くなって時代に取り残されていっちゃうのが悩ましいところです。 さてさて、では今回もUnityで遊んじゃいましょう。 前回は戦略シミュレーションの戦闘を作りましたね。 ついでにターン制の仕組みも実装したりなど、筆者自身エンジョイしつつサンプルプログラムを書いておりました(笑)。 今回は敵AIを作って、戦略シミュレーションゲームとして遊べる状態にしましょう! 戦略シミュレーションのAI ゲームのAIといえば、でリバーシのAIを作ったことがありました。 戦略シミュレーションのAIは、やること自体はリバーシのAIと似ています。 ただ、実装の難しさには大きな差がありまして、リバーシは「石が置けるマスに石を置く」という唯一のアクションしか無かったため、実装がとても簡単でした。 強弱を考えなければ、石をランダムに置くだけでも一応ゲームとしては成り立つというわけです。 一方、戦略シミュレーションではリバーシに比べてアクションのパターンが格段に多いです。 今回作っているシンプルな戦略シミュレーションでさえも、「どのユニット」が「どこに移動」して「誰に攻撃」するかを考えると、組み合わせは相当な数となり、どう制御するかが悩ましいというわけです。 そこで、まずは戦略シミュレーションにありがちなAIを思い浮かべながら、そのAIを実装するためにどのような制御をすれば良いかを考えていくことにしましょう。 得られる情報を考えてみる 私たち人間が戦略シミュレーションをプレイしているとき、画面を見るだけでどのユニットがどこに居るかが把握できます。 当たり前のようにも思えますが、人間の認知能力ってスバラシイのです。 AIがユニットを知ろうとした場合は、目で見て直接把握するというわけにはいきません。 画像処理の分野を極めればそのような実装も可能でしょうけれども、明らかにオーバースペックです(笑)。 ということで、AI側で処理しやすいデータとして伝えてあげることにしましょう。 ユニットの位置を知らせるとなると、真っ先に思い浮かぶのは各ユニットの居るマスの座標データです。 座標データはすぐに引っ張ってこられますし、「位置データ」という面では申し分無いデータです。 しかし、仮に数マスしか離れていないところに敵ユニットが居たとしても、そこまでの間に障害物がある場合は回り道をする必要があります。 そういった意味で、座標データだけでは不十分と言えるでしょう。 そこで活躍するのが、ユニットの座標データとマップから敵までの移動コストを計算し、経路探索をするアルゴリズムです。 移動コスト計算のアルゴリズム 前々回に移動可能範囲の計算アルゴリズムを実装しましたよね。 移動可能範囲の計算アルゴリズムではユニットが持つ移動力をベースにマスの移動コストを減算する処理を行っていました。 対象マスまでの移動コストを知りたい場合は、自身の居る場所を「0」とし、マスの移動コストを加算しながら計算を行います。 下の図は自ユニットと敵ユニットとの間に移動不可能な山が挟まっている場合のサンプルです。 左はマスの必要移動コスト、右は該当のマスまで移動するのに必要な移動コストです。 「自」から「敵」に隣接するマスに移動する場合、最短で移動力9が必要であることがわかります。 図 1 最短移動ルートの計算 計算時に注意すべき点として、移動不可マス(山)の移動コストがあります。 前々回にユニットの移動可能範囲を調べる際は山の移動コストを「9」として計算していましたが、今回のアルゴリズムでは「9」のままですと進入できるマスとして扱われてしまいます。 進入不可のマスには移動不可フラグを立てるなどして。 移動先から完全に除外してしまった方が良いでしょう。 行動の重み付け 上記アルゴリズムでは「敵ユニットまでの最短ルート」がわかりました。 ただ、常に最短ルートで移動するだけでは敵の行動パターンが乏しくなってしまいます。 リバーシのAIを作る際に説明したことがありましたが、「AIが何を重要と見なすか」を指定できるようにすることで、AIの行動パターンに個性を持たせることができるようになります。 「AIが何を重要と見なすか」は、ゲームの各局面で人間がどのように考えて行動を決めるかをイメージすると良いでしょう。 例えば、目的地点の選び方は• ・敵ユニットを攻撃可能なマス• ・反撃を受けないマス• ・高い地形効果が得られるマス• ・味方のサポートを得られるマス などが考えられます。 また、ユニットの状態や他の条件を加味することもあるでしょう。 ・敵ユニットを一撃で倒せるか• ・敵ユニットの反撃に耐えられるか• ・その敵ユニットを倒すことで、味方が有効な行動をできるようになるか などなど。 実装の際、これらの条件を数値化して重み付けをします。 例えば、ユニットが移動可能なマスのうち、「敵ユニットを攻撃可能なマス」は50ポイント、「高い地形効果が得られるマス」は30ポイントが与えられるものとします。 AIはポイントの高いマスを移動先として選ぶだけで最適な行動がとれるというわけです。 でも、AIは強けりゃいいってものでもない 戦いを有利に進めるためのさまざまな条件を考えて実装を進めれば、きっと強いAIができあがることでしょう。 ただ、難しいのが「AIは強けりゃいいってものでもない」という点です。 ゲームの熟練者は手応えを求めるかもしれませんが、ゲームを始めたばかりで勝てないくらい強力なAIと戦うことになると、きっとストレスを感じるプレイヤーは多いでしょう。 重み付けによってAIに個性をつけられるという話は先ほど述べた通りですが、これをうまく利用することで、AIの強さを調整することが可能です。 具体的には、一番重みのある行動(最適な行動)ばかりを選択せず、2番目や3番目の行動も選択するようにします。 そうすることで、AIが少し弱くなります。 (常に最適な行動をするわけではないというのは、ちょっと人間っぽいですね) 作ってみた 今回は、各パラメータに数値を指定することである程度行動が制御可能なAIを作ってみました。 ベタにAIを作るよりも少し手間はかかりますが、数値を変えるだけでさまざまなパターンのAIが簡単につくれますよ。

次の

リバーシのゲームルール

リバーシ 戦略

準備 2. プログラミングを使うのではなく、人間の手で解析する事により、局面一つ一つに意味を見いだす。 そして、人間の手で並べたからこそできる、重要な局の発見、戦略、定石などを解説し報告する。 また、オセロは「覚えるのに一分、極めるのに一生」と言われ、ゲーム性はいたってシンプルであるが、奥がとても深く、小さな子どもから大人、そしてお年寄りまでが一緒に対戦して楽しめるゲームである。 本論文は『覚えるのに一分、極めるのにこの論文を読む』を目標に作成した論文である。 準備 オセロ Othello とは、2人用のボードゲーム。 交互に盤面へ石を打ち、相手の石を挟むと自分の石の色に変わる。 最終的に石の多い側が勝者となる。 石は両面が白と黒になっており、黒のプレイヤーは黒い面で、白のプレイヤーは白い面で石を打つ。 図1のように、まず中央の4マスに白と黒の石をそれぞれ2個ずつ互い違いに置き、黒が先手、白が後手となる。 オセロの返し方図 打てるマスがない場合はパスとなり、パスの回数に制限はない。 返せる石がある場合、パスをすることは認められない。 石が盤面の64のマス目を全て埋め尽くした時点、あるいは打つ場所が両者ともなくなった時点でゲーム終了となる。 ゲーム終了の時点で、盤面に多くの石を有しているプレイヤーが勝者となる。 また、ゲーム理論では二人零和有限確定完全情報ゲームに分類される。 二人零和有限確定完全情報ゲームとは 二人零和有限確定完全情報の単語一つ一つに意味がある。 二人 ゲームを行うプレイヤーが二人のゲーム。 有限 そのゲームにおける各プレイヤーの可能な手の組み合わせの総数が有限であるゲーム。 確定 プレイヤーの着手以外にゲームに影響を与える偶然の要素が入り込まないという意味。 完全情報 各プレイヤーが自分の手番において、これまでの各プレイヤーの行った選択(あるいは意思決定)について全ての情報を知ることができるゲーム。 二人零和有限確定完全情報ゲームの特徴は、理論上は完全な先読みが可能であり、双方のプレイヤーが最善手を打てば、必ず先手必勝か後手必勝か引き分けかが決まる。 実際には選択肢が多くなると完全な先読みを人間が行う事は困難であるため、ゲームとして成立する。 囲碁や将棋、チェスなどもこれに分類される。 津田は後手必勝であることを発見した[1]。 また、後手必勝を証明する際、PCを使いゲーム木探索を行っている。 どのようにゲーム木探索を行っているのか以下に示していく。 評価値とは 思考プログラムの基本は、局面がどの程度自分にとって有利か点数を付ける 評価する ことである。 この点数を評価値という。 局面の有利度を適切に評価することができれば、自分の打てる手のうち、最も評価値の高い局面を出現させるような手を選択すればよいことになる。 この図から、角のマスは評価値が高く、角のまわりのマスは評価値が低いことがわかる。 しかし、これには注意点がある。 つまり、評価値とは必ずしも真実を表しているものではないことがわかる。 局面に置かれている駒の位置・数などだけから算出した評価値を静的評価値、算出する関数を静的評価関数と呼ぶ。 「静的」とはここでは先読みをしていないことを意味する。 通常、静的評価関数だけで適切な局面評価を行うことは困難である。 そのため、先読みを実現するのがゲーム木探索である。 また、通常評価値は正確には計算できないが、コンピュータで有力な手を見つけるためには重要な情報である[2]。 ゲーム木探索とは 図5. ゲーム木説明図 オセロに限らず、多くのゲームで行われている探索について説明する。 探索とは、現在の局面を最初として、自分の手および相手の手によって、今後局面がどう展開するかを考え、もっとも得になる手を予想する作業である。 探索の様子を図であらわすために、「ゲーム木」(図5)を考える。 このゲーム木図では、局面を節点(図の丸と四角)であらわし、手を枝(丸と四角を結ぶ線)であらわす。 図では、四角は自分の手番のときの局面(以下自局面と呼ぶ)をあらわし、丸は相手の手番のときの局面(以下相手局面)をあらわしている。 一番下の節点を葉と呼ぶ。 図で葉に書かれている数字は、その局面での評価値をあらわしている。 (高い方が自分にとって有利だとみなす) ミニマックス法とは 図6. ミニマックス法説明図 次の手を選ぶ方法として、ミニマックス法を説明する。 現在の局面から、数手先(図6では3手)の局面をすべて調べ、評価したとする。 この評価値から、どのようにして次の手を選ぶのか決める方法をミニマックス法という。 これは 相手が自分にとってもっとも不利になるような手を打ってくると仮定して、最善の手を探す方法である。 図6では葉以外の節点にも数字が書かれている。 これは各節点での評価値をあらわし、次の規則に従っている。 節点が自局面のとき=その子節点の評価値のうち最大の値• 節点が相手局面のとき=その子節点の評価値のうち最小の値 赤または青の線は選んだ手をあらわしている。 この規則に従って下から順に各節点の評価値を決めれば、現在の局面の評価値およびどの手を選択すればよいかが決まる。 ミニマックス法では、先読みの手数が増えるごとに、評価しなければならない局面の数が指数関数的に増大する。 そこで、評価する局面を減らすための方法がある。 説明しやすいように節点に名前をつけている。 ここでは、図の左側から探索していくとする。 すると、節点Pを探索した後、節点Qは探索する必要がなくなることがわかる。 理由は、まず、節点Pの評価値が7なので、節点Gの評価値が7以上になる。 節点Fの評価値は6で、7より小さいので、この時点でBの評価値は6に決まるからである。 次は、節点Hを探索した時のことを考える。 このとき、節点Cの評価値は5以下になる。 すると、節点Bの評価値が6なので、節点Cの局面になるような手は採用されないことが決まり、 節点Iより先の探索が打ちきられる。 今度は、ある節点の評価値がある値以下になるために探索を打ちきっている。 このような方法を使い津田の研究では、後手必勝などを証明している[3] 実用的に用いられる評価値は、計算量を減らすために基本的には近似アルゴリズムで計算するため、あらゆる局面で最善手を選ぶことができない。 また、評価値の計算方法は無限にある。 そのため、定石とコンピュータの手は必ずしも一致しないのではないのか。 実際のコンピュータプレイヤーはもっと様々なアルゴリズムを使っている。 特に用いられるのは、実際の有効手が多く記憶されているデータベースを使う方法など。 人もコンピュータと同じようなことを行い打つ手を決めるが、コンピュータの場合には問題がある。 それは、人の場合は、実力や心理状態に応じて評価する手段が異なるが、コンピュータの場合は、相手の手も自分と同じ評価関数を用いて探索を行っている点。 また、人の場合は、最善手を取らずに次善手(2番目に良いと判断した手)をあえて打ち、相手を惑わす場合もある。 コンピュータではなく、実際に人間の手でゲーム木を作成し、感じること、また枝切りされた局の中からも、面白い局や興味深い局を発見する。 研究内容 実際に人間の手でゲーム木を作成し、勝てる条件や感じること、また枝切りされた局の中からも重要な局を見つけ出す。 また、人間の手で作成したからこそできる意味づけ、解説、定石の発見などをしていく。 マスの表現 作成したゲーム木ではオセロのマスを以下のように表現した。 図17. 不変の石 図17を例としてみると、角のマスは縦横斜めのどの方向からも挟むことをできないので変化しないマスであることがわかる。 よって、a1、a4、d4の石は角のマスの石であるので不変の石である。 次に、b1、c1の石に着目すると角のマスa1の白石と、b1、c1の白石が一列に繋がっていることがわかる。 このように角のマスと同色の石が一列に繋がり合っている石も不変の石である。 次にa2、a3の石に着目すると、角のマスと同色の石が一列に繋がり合っていないがこの縦の一列は全てのマスが埋まっているため変化させることができないことがわかる。 よってこのa2、a3も不変の石である。 確保の逆に、不変石を確保させない手も有効である。 戦法3 相手の打てるマスを減らす。 相手の打てるマスが多いと、戦局を左右できる可能性を上げてしまうためである。 1、2、3の順で優先順位の高い戦法である。 この戦法を利用し、お互いが最善手を打った時の局を解説していく。 対局解析 1手目(黒1手目)の決定 図34. c4 に打った時 図31を見ると、白は不変石a2,a3を確保でき、次手の黒はd1の一か所にしか打てないことがわかる。 ただ、d1は不変のマスなので注意する必要があることがわかる。 図32を見ると、白は不変石a4を確保できる。 しかし、次手の黒はd2、a3、c4の3か所に打てる。 そして、a3に打った場合はa2、a3の二か所を不変石として確保されてしまうことがわかる。 また、黒がc4に打った場合もc4を不変石として確保されてしまうことがわかる。 よって、白の手は a3 、 a4 の順で有効であることがわかる。 図33を見ると、白は不変石を確保できていない事がわかる。 また、次手の黒は、d2、a3、c4の3か所に打つ事ができ、黒がc4に打つと、c4を不変石として確保されてしまうことがわかる。 よって、白の手は a3 、 a4 、 b4 の順で有効であることがわかる。 図34を見ると、白は不変石を確保できていない事がわかる。 また、次手の黒は、d1、d2、d3、b4の4か所に打つ事ができ、黒がd1に打つと、d1を不変石として確保されてしまうことがわかる。 また、黒がd3に打つと、d3を不変石として確保されてしまうことがわかる。 黒がb4に打った場合では、b4、c4を不変石として確保されてしまうことがわかる。 よって、白の手は a3 、 a4 、 b4 , c4 以上の結果より、白の手は a3 が最も有効であることがわかる。 従ってa3に打つ。 7手目(黒3手目)の決定 図40. c4 に打った時 図37を見ると、白は不変石を確保できない。 また、次手の黒はd3の一か所にしか打てないことがわかる。 そして、d3に黒が打つと、d2、d3は不変石となることがわかる。 図38を見ると、白は不変石を確保できない。 また、次手の黒は、d2、a4の2か所に打てる。 黒がd2に打った場合はd2、d3の2か所を不変石として確保されてしまうことがわかる。 また、黒がa4に打った場合はa4を不変石として確保されてしまうことがわかる。 よって、白の手は d2 、 d3 の順で有効であることがわかる。 図39を見ると、白は不変石を確保できていない事がわかる。 次手の黒はa4の1か所にしか打てない。 黒がa4に打った場合はa4を不変石として確保されてしまうことがわかる。 図37の結果と比べると、次手黒の不変石の確保数の違いがあり、b4に打った時のほうが良いことがわかる。 よって、白の手は b4 、 d2 、 d3 、の順で有効であることがわかる。 図40を見ると、白は不変石を確保できていない事がわかる。 また、次手の黒は、a4、b4の2か所に打つ事ができ、黒がa4に打つと、a4を不変石として確保されてしまうことがわかる。 また、黒がb4に打つと、b4、c4の2か所を不変石として確保されてしまうことがわかる。 この結果は、図38の結果とほぼ変わらない。 また、図38の盤面もとても似ていることがわかる。 よって、白の手は b4 、 d2 、 d3 = c4 の順で有効であることがわかる。 以上の結果より、白の手は b4 が最も有効であることがわかる。 従ってb4に打つ。 9手目(黒の5手目)の決定 図45. c4 に打った時 図43を見ると、白は不変石を確保できない。 また、次手の黒はd3、c4の2か所に打てることがわかる。 黒がd3に打つと、d2、d3を不変石として確保されてしまう。 また、黒が、c4に打つと、b4、c4を不変石として確保されてしまう。 図44を見ると、白は不変石を確保できない。 また、次手の黒はd2、c4の2か所に打てることがわかる。 黒がd2に打つと、d2、d3を不変石として確保されてしまう。 また、黒がc4に打った場合はb4、c4を不変石として確保されてしまうことがわかる。 図43と図44の結果を比べると結果の意味としては似ているが、盤面には違いがあり、この先のゲーム木を見てみると、図43の先には黒の勝てる手があるが、図44の先には黒の勝てる手がないことがわかった。 よって、 d3 、 d2 の順で有効であることがわかる。 図45の結果を見ると、白は不変石として、b4、c4を確保していることがわかる。 また次手の黒は打てる場所がない。 その次に白が打てる場所もないので、終局となり、白が勝つ。 よって、白の手は c4 、 d3 、 d2 の順で有効であることがわかる。 以上の結果より、白の手は 3 c4 が最も有効であることがわかる。 従ってc4に打つ。 終局 黒:3石 白:11石 白の+8石勝ち 図46. 最善手を打ちあった時のゲーム木 この結果より、お互いが最善手を打った時、白が+8石勝ちであることがわかった。 その結果、枝切りされてしまった局や手の中にも有効な戦略(白は対極の角を確保するなど)をみつけ、証明することができた。 また、人間の手で作成したからこそ、局の分析、解説などを詳しくできたと思う。 勝敗を決める場所(d4)があり、ここをどちらが取るかが重要となる。 これは従来の評価値を裏づけるものである。 一方で中盤までの取る石の数はそこまで重要ではない。 そのため「なるべく多く取る」のような戦略は意味がない。 相手に重要なマスを取らせない方法として、相手が打てる場所が少なくなるような手を選んだり、角などの以後全く返せない石を増やす戦略がある。 分析結果では、圧倒的に白が有利であることがわかった。 しかし、お互いが常に最善手ではなく、1手でも悪手を打つと戦局が変わってしまうことがあることがわかった。 例としては、10手目 白5手目 の決定の時に、白が最善手ではなく、1番の悪手の手を打ってしまったときだ。 ここでの悪手は黒の勝ちにしてしまう。 このように、悪手を1度でも打ってしまうと戦局が反転し、黒が有利になるケースがあることがわかった。 また、最善手をお互いに打った時、黒は4つの角のうち3つの角を確保しても勝てなかった。 ゲームの序盤に角を取ると、不変石を作りやすくなるので、ゲーム序盤での角の確保は重要であるが、終盤ではより多くの不変石が取れるマスが多くなるので、評価価値の高いマスがでてくる。 このため、角のマスは不変のマスであるため、重要なマスだと考えられるが、必ずしも優先すべきであるとは限らないことがわかった。 お互いが最善手を打った時、白は常に攻める考え方ができたが、黒は守りの考え方しかできなかった。 本研究の反省点としては、2手目(白の1手目)に角を打たない場合のゲーム木を作成できなかったことだ。 今後は、白が2手目に角を打たないというミスをした場合のゲーム木を検証しさらなる局面の変化をとらえたい。 dyndns. skr. vector.

次の

Unityで作ろう!ゲームアルゴリズム(12)シミュレーションゲームのアルゴリズムを作ってみる その3 | Geekroid

リバーシ 戦略

敵を挟んで戦え!リバーシクエスト2の攻略ポイント リバーシクエスト2の戦闘をみてみましょう! 自軍と敵軍のコマが用意されており オセロのように相手のコマを挟み込むとダメージを与えることができます。 逆に自分のコマが挟まれると自分にダメージ。 挟むコマが多いほど相手に大ダメージを与えることが可能。 かなり戦略性が必要となりますね! コマは、ダメージを与える 「アタッカー」の他に 相手のコマを挟むと自分のHPが回復する 「ヒーラー」といった とてもユニークなコマ属性も存在します。 コマを置くマスにも仕掛けがあり コマを置くだけでダメージを受けるマスや 逆にHPが回復するコマも存在。 ただ、挟めばいいという思考ではなく コマの属性やマップの形状を考えて配置していきます。 実際にプレイしてみましたが 初心者の私でも序盤はすんなり勝つことができました! なんといっても、複数のコマを挟んで 敵に大ダメージを与えた瞬間はかなり爽快! 負けている状況でも、たった1手で逆転できる可能性を秘めており やり込んでいきたいっ!!と率直に感じました! スポンサーリンク リバーシクエスト2は長く遊べる戦略RPG! 戦闘はコマを置いて敵を挟むだけなので 初心者の方でも抵抗なくプレイすることができます。 徐々にコマ属性やマップ形状が複雑になるため ゲームのシステムに慣れてきた方でも 飽きることなくプレイすることができますよ! 無料版は序盤までしかプレイできないので 最後までプレイするにはフル版の購入が必要。 しかし、課金ガチャはないので 「課金ガチャで高ランクキャラを引かないと詰んでまう!」 なんてことは絶対ありません!• 戦略性のあるゲームをやりたい!• 往年のスーファミグラフィックが好き!• ソシャゲには飽きた! こんなあなたにはハマること間違いなし! ぜひプレイしてみてくださいね! スポンサーリンク.

次の