問題タブ [gomoku]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
554 参照

java - Java Swing を使用した 5x5 から 50x50 のボードゲームの実装

Java と Swing を使用して、セルを使用して 2D ボード ゲームを表現する構成可能な次元マトリックスを実装する最良の方法は何ですか?

グリッドレイアウト?テーブル?

0 投票する
1 に答える
1472 参照

c++ - Cでの五目並べデータ表現

現在GUIなどで行っている五目並べゲームに取り組んでいます。IAとルールチェッカーをコーディングする必要があります(キャプチャ、禁止パターンなどのオプションのルールの場合)。ボードを次のようなint配列で表すことを計画していました。

これは19*19碁盤(ボード)を表します。32ビット整数を4バイトに分割でき、各バイト内に次のようなメタデータをストックできるとしましょう。

  • 1バイト目:この場合は空/黒/白ですか?
  • 2バイト目:この場合は特別なパターンの一部ですか?
  • 3バイト目:パターンのどの位置にいますか?
  • 4バイト目:私は捕らえることができますか?

この種のソリューションが五目並べAIに適しているかどうかはわかりませんが、私が抱えている主な問題は、それを適切に作成する方法です。パターンを取りましょう:

オープンで無料の3つで、内側と端にスペースがあります。このパターンを座標のない静的な表現とどのようにリンクさせるのですか?

もう1つの懸念は、パターンをいつ更新する必要があるか、そして361の場合から、前の図をこれに更新するとかなり長くなる可能性があるためです。

4つのケースすべてを更新する必要があるため、適切ではないと思います。さらに、他の多くの垂直/斜めのパターンに影響を与える可能性があります。

むしろ、現在マップ上にあるパターンのリストを次のように作成する必要があります。

マップを単純なtriboolまたはchar配列にしますか?

評価関数によって埋められる影響マップの高速更新を取得するために、データ表現が最大の情報を提供するようにしたいです。脅威空間検索やその他の五目並べアルゴリズムについていくつか読んだことがありますが、データ表現については説明しておらず、正しく行う方法がわかりません。パターンを表現するためのクリーンな方法と方法を見つけるのを手伝ってください。それらを更新します。

ありがとうございます。

0 投票する
2 に答える
137 参照

java - true の場合に checkforWin(File f) が true を返さないのはなぜですか?

これにより、この五目並べゲームで勝利の動きを超える追加の動きが発生し、余分な動きの後の checkForWin メソッドが勝利を検出するメソッドになりますが、対応する makeMove メソッドの直後の checkForWin メソッドである必要があります。

**

// 簡潔にするために、try/catch ブロックは省略されています

0 投票する
1 に答える
1632 参照

c++ - 五目並べの最先端技術

通常、人々は pn-search または pn^2 または df-pn を使用して、勝利の解決策があるかどうかを答えます。

次に、優れた評価関数を使用して、最小最大ゲーム ツリーでアルファ ベータ プルーニングを使用します。

15プライ以上の深さに達することができます

現在、Go の処理に成功しているモンテカルロ法があります。

五目並べでも同じ技が使えるの?例(ソースコードまたは紙)

よく調整された評価関数を構築するための良い方法を説明している論文はありますか。

または五目並べに対処するための最先端または有用な技術は他にありますか?

五目並べを扱うのにpn検索は必要ですか?

別の VCT エンジン (src の方が良い) はありますか?

0 投票する
2 に答える
506 参照

java - Go-Moku ゲームをループさせ続けるにはどうすればよいですか?

ゲームゴーモクを作ろうとしています。ゲームはコンパイルされますが、正しく実行されません。ゲームを実行すると、空のボードが印刷され、行と列の整数を入力するように求められますが、Enter キーを押して列の int を送信すると、他に何も起こりません。

これが私のコードです:

ありがとう

0 投票する
1 に答える
460 参照

ruby - Ruby は行列の対角行で重複をカウントします

私は Ruby で五目並べゲームを実装しています。これは 15x15 のボードでプレイされる三目並べのバリエーションであり、水平、垂直、または斜めの行に 5 つの O または X を配置した最初のプレイヤーが勝ちます。

まず、Matrix を変数に代入し、0 から 224 までの数値を入力します。これにより、繰り返しがなくなり、後で数えることができます。

その後、プレイヤーは交代し、ターンごとにメソッドで勝利を確認しますwin?

おそらく間違っていることはわかっていますが、私の問題はそうではありませんが、提案は大歓迎です。問題は斜めの列にあります。斜めの行で重複をカウントする方法がわかりません

0 投票する
0 に答える
1689 参照

java - Javaの五目並べ評価関数

アルファ ベータ プルーニングを使用してコンピューターに最適な動きを選択する Gomoku Player クラスを実装しましたが、評価関数を記述してボード上の各位置を正しくスコアリングする方法がわかりません。

ボードの位置を評価し、各行、列、および対角線の黒、白、または空白の位置の数を更新する「evaluateBoard」メソッドがあります。私の 'scoreChange' メソッドは各位置にスコアを付けます。これは、3 つまたは 4 つが連続しているときにブロックされないため、プログラムがエラーを起こしていると感じる場所です。

各ポジションを正しく評価して採点するにはどうすればよいですか?