ボードゲームを作って、javascriptとimに領域を数えるのに問題がある。あなたが知りませんでした場合、GOは複雑なチェッカーのように、石を斜めに置くのではなく、水平に、そして垂直に置きます。ゲームが終了し、あなたの石の境界線を作ったとき(ボードのエッジは任意のものとしてカウントされます)、領域が発生します。ボードゲームの領域(GO)を計算するロジックの背後にあるロジック
したがって、上記の画像は私がこれまで持っているものです。
白=プレイヤー1、黒=プレイヤー2、緑=領土
だから、緑は唯一のゲームの終わりに来ます。ゲームは終了しました。黒は、ボードの左上隅に2人の囚人を拘束しています。内部のグループは識別され、緑色で色付けされています。問題は、緑の領域がどのプレイヤーに属しているかをどのように知っていますか?
すべての人間は、黒色が領土のすべての側面/境界を所有していることがわかります(ボードのエッジは任意です)。囚人がいると難しくなる。私はすべての緑のセルに隣接するすべてのセルをチェックすることができます。黒と白があれば、それは領地ではなく、囚人がいるならそれはうまくいかない。
私が考えている方法の1つは、周りを回る国境を特定しようとすることです。もし私がそれをすることができれば、私はそれが誰であるかを簡単にチェックすることができます。ボーダーピースを計算するのは、四角形ではあるが円か、どんな変形された形でも簡単だろうか?よく分かりません。
すべてのヘルプはにappriciatedされ:) Imはアイデアを自分で投稿し、この方法を試してみるつもり
あなたはそれのために独自のアルゴリズムを作成しなければならないでしょう – user7951676
私はそれを集めましたが、そのアルゴリズムの論理は何ですか?私はちょうど私がグループのすべての駒をスクロールできることを実現しました。それは、すべての側面に緑を持っている場合は、中央にあり、境界を識別するために削除することができます。それが囚人と一緒に働くかどうかわからない –
私はGoがどのように働くのか分かりません。ボードを分割する部分のパスを見つける必要がありますか(floodfillと言ったので) - [この質問]をチェックしてください(https://stackoverflow.com/questions/2631576/using-recursion-to-find-paths-in-a -2d-array) – James