問題タブ [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 投票する
2 に答える
1162 参照

c# - c# 五目並べゲーム ラベル配列

Windows フォームと C# を使用して、2 人のプレイヤー向けの単純な 5 列 (五目並べ) ゲームを作成しようとしています。絵の入ったピクチャーボックスを置き、フォームに伸ばしました。ここで、ユーザーがクリックして背景色を黒または白に変更できるように、画像ボードのすべての交差点にラベルを配置したいと考えています。

  1. 作成したラベルをフォーム上でクリック可能にするにはどうすればよいですか?

    /li>
  2. [{A,1}, {A,2}....{D,1}]勝者を簡単に確認するには、1 次元 [361] または 2 次元の配列を作成する必要がありますか? 配列データがボード上のオブジェクトに対応するように、作成したラベルに接続するにはどうすればよいですか?

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

java - 評価関数が機能しない

私は五目並べボード (8x8) を評価しようとしています。評価関数が機能しない理由がわかりません。大量の if ステートメントを記述するよりも、これを記述する簡単な方法はありますか?

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

c# - WinFormsボタンの実際の位置を取得するには?

現在、「GoMoku」と呼ばれる小さな 2 人用ゲームをプログラミングしています。「コネクト4」と同じように、フィールドのどこにでも石をセットできる違いがあります。forループで作成し、ボタンの配列にプレーヤーの番号を設定するいくつかのボタンでそれを実現しました。それは非常にうまく機能しますが、フォームのフレームの近くにあるボタンをクリックすると、常に範囲外の例外があると表示されます。場所をデバッグして確認しましたが、間違っている場合とそうでない場合があります。ランダムの一種。私は何を間違っていますか?どうすればこの問題を解決できますか?

これが私のコードです:

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

java - MCTS Gomoku プレーヤーでの Java ヒープ領域の問題

プログラムを実行すると、次のエラーが表示されます。

同じ MCTS コードを 3x3 ボード サイズに使用しましたが、これはクラッシュせず、競争力のある動きをすばやく返します。しかし、15x15 のボード サイズで使用しようとすると、1235 回の反復後にゲームがクラッシュし、上記のエラーが表示されます。

1235回の反復後にノードの拡張を許可しないことで、問題の症状に対処したと思います。これは最終的に競争力のある動きを返しますが、これが起こるまでには長い時間がかかります.

私にとって根本的な原因は、作成しようとしているツリーのサイズです。これは、同じコードが 3x3 ボードでは機能しましたが、15x15 ボードでは機能しなかったためです。すべてのノード オブジェクトを含むツリーのサイズが大きすぎます。したがって、これは私のコーディングではなく、このアプローチの問題です。

x回の繰り返しの後、ノードにy回アクセスしたが勝利スコアがz未満の場合、そのノードを削除します。私の考えでは、x回の反復の後、y回訪問されてもまだ勝利スコアが低い場合、このノードはツリー内の不要なスペースを占有している可能性が高いため、削除する余裕があります.

私の質問は:

拡張の数を減らすだけでなく、上記のチェックを実装する必要もなく、プログラムがクラッシュするのではなく移動を返すためのより良い方法はありますか? (最善の手の計算に時間がかかる場合でも)。

これが私の未編集のコードの一部です:

編集済み** MCTS 拡張機能:

MCTSPlayer 関数:

以下に新たに含まれる**

最初のノード関数を選択します (移動リストのサイズが == から 0 になるまで続行します):

"+initialNode.childrenList()); //System.out.println("残りの移動可能なノード: "+initialNode.getPossibleMovesSize()); } return initialNode; }

機能を選択:

childrenLeft 関数:

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

c++ - C++ の五目並べゲームのコンピュータ プレーヤー

少し前に、C++ で五目並べに似たゲームを作成しました。

今、私はそれをプレーヤー対コンピューターにしたいと考えています。ランダムなセルを選択するコンピューターの機能を作成することで、最も簡単な方法でそれを実行しようとしましたが、まだ成功していません。乱数を取得するために rand() を使用でき、文字には次のようなものがあることを理解しました。

誰かが私を助けて、コンピュータープレーヤーを実装する方法を説明できますか? これはこれまでの私の実装です: