問題タブ [baduk]
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.
artificial-intelligence - ボードゲーム「囲碁」NPは完了していますか?
周りにはたくさんのチェスAIがあり、明らかに、世界で最も優れたプレーヤーの何人かを打ち負かすのに十分なものもあります。
ボードゲーム「囲碁」で成功するAIを書くために多くの試みがなされてきたと聞いていますが、これまでのところ、平均的なアマチュアレベルを超えるものは考えられていません。
Goで任意の時点で最適な動きを数学的に計算するタスクは、NP完全問題である可能性がありますか?
linux - 囲碁(囲碁、囲碁)の良いフレームワークは?
私は囲碁(中国では囲碁、韓国では囲碁とも呼ばれます)を楽しんでいます。それを再生するプログラム(評価関数)を作りたい。
フレームワークが次の 2 つの重要なタスクを処理することを希望します。
- キャプチャ、KO ルール、最終スコアリングなど、ゲームのルールを処理します。
- KGS のようなサーバーと私のプログラムとの間の通信を処理します。
また、私のホーム マシンは Linux または Mac OS X を実行しています。Windows のみのプラットフォームは使用できません。
ありがとうございました!
c# - 多数の要素を使用した WPF の描画パフォーマンス
WPF でカスタム コントロールを作成して、囲碁のゲーム ツリーを表示しようとしています(外観については、こちらを参照してください)。ノードのレイアウトは多かれ少なかれ機能していますが、ノードの数がおよそ30. 囲碁の平均的なゲームは約 200 の手で構成されているため (プレーヤーが分岐する可能性のある他の分岐は言うまでもありません)、これは現実的なゲームではかなり大きな問題になるでしょう。
現在、私はゲーム ノードに個々のユーザー コントロール (それぞれが影のビットマップ効果といくつかのテキスト注釈が付いた楕円) とツリー内の円弧に単純な線を使用しています。これらはすべてキャンバスに絶対的に配置されています。
レイアウト アルゴリズムは、新しいブランチが作成されたときにのみ実行する必要があるため、それほど問題ではありません (それ以外の場合、ノードはその親のすぐ下に追加できるため、他のノードを再配置する必要はありません)。主な問題は単純に、このキャンバスとその要素のあらゆる種類の操作が非常に遅いことです。これはおそらく、キャンバスに含まれる子の数が原因であると考えられます。ノードだけでなくアークも多いため、ツリーの幅と複雑さが増すにつれて、明らかに遅くなります。
私の質問:このような大規模/複雑な構造を、成長するにつれてレンダリングが遅すぎないように描画する適切な方法は何ですか?
編集:これは私の他の質問に関連しています。
編集:ノードに使用しているユーザーコントロールのマークアップは次のとおりです。
これらは、ツリーを描画するためにキャンバスに動的に追加されています。
javascript -
私は新しいタグを少し試していて、すでに最初の障害にぶつかっています。古典的なボード ゲームの Go/Baduk/Weiqi のバージョンを実装することで、足を濡らし始めると考えました。
moveTo() と lineTo() を使用して xy グリッドを描画し、もちろんその XY グリッドの「下」にある必要がある fillRect() を使用して木の背景を描画しました。
しかし、そこに私の問題があります。fillRect() の背景はグリッドの上に描画されるため、グリッドが見えなくなります。
これを元に戻すにはどうすればよいですか? これが私が取り組んでいるものです:
java - Javaで囲碁、囲碁、囲碁のゲームをプログラミングする方法
私は Java の初心者なので、囲碁のボード ゲーム用の Java スケルトンがあるかどうかを知りたいです。
algorithm - 囲碁をプレイするためのアルゴリズム?
囲碁のゲームをプレイするためのアルゴリズムの最先端は何ですか?
どの記事(アルゴリズムを説明する)を読むのが最適ですか?
Go専用のStackExachgeサイトがありますが、そこに質問するのに十分な人がいません。
android - Android Go ゲームアプリの盤面に石を描く
私は Android 初心者で、Android 用の囲碁ゲーム アプリケーションを開発しています。ボードに 1 つの石を描くのに問題があります。
これが私の onDraw() メソッドです。
そして、私は onTouch() メソッドを持っています:
ポイントは、このメソッドを使用してクラス コンストラクターで背景色を設定するときです。
アプリケーションは、touchEvent の後でボードに石を描画できませんが、背景色を設定しないと、アプリケーションは完全に石を描画します。
PS 属性stoneX、stoneYは正しく定義され、初期化されています。
java - JAVA - 囲碁アルゴリズム
囲碁ゲームでデッド ストーンをクリアするアルゴリズムを実装しようとしています。
再帰的に使用すると最も効率的で実装が簡単になるため、フラッドフィルがこれを達成するのに最適であると聞いています。
コード内での使用に問題があり、どのように実装すればよいのか疑問に思っていました。
これは私のクラスの 1 つです。
x
とy
は四角の座標、placed
は置かれた石の文字、liberty
はその他の文字
どんな助けでも素晴らしいでしょう!
c - Goでボードをクリアするための高速アルゴリズム
私は現在、Goボードを処理するためのコードを書いています。碁盤は色の配列として表されます。配列にはsize
×size
エントリがあり、2次元の正方形のボードを表します。
移動する場合enum color player
、次の手順が適用されます:(ルールを参照)
- [...]
- Pから色Cの点へのPの色の(垂直または水平)隣接する点の経路がある場合、色Cではなく点PはCに到達すると言われます。
- 色をクリアすることは、空に達しないその色のすべてのポイントを空にするプロセスです。
- [...]
- 移動は、[...]対戦相手の色をクリアしてから、自分の色をクリアすることで構成されます。
ボードをクリアするための高速な(計算の複雑さと実際の速度の点で)アルゴリズムを探しています。手伝って頂けますか?
java - JScrollPane ビューポート サイズ
hist
(HistoryPanel extends JPanel) を JScrollPane のビューポートにしようとしていますhistScroll
。問題は、スクロールバー ポリシー (以下のコード) で強制的に表示しない限り、水平スクロール バーが表示されず、強制してもスクロールする場所がないことです。問題は、HistoryPanel のサイズが水平方向に大きくならないことです。のサイズを設定するさまざまな方法を試しましhist
たが、横方向のサイズは固定され続けています。ただし、垂直方向には完全に正常に機能します。何が問題なのかわかりません。
下にスクロールすることはできますが、右にスクロールすることはできません。画像の一部が切り取られるため、これは大きな問題です。このプログラムでは、実際には垂直スクロールよりも水平スクロールの方がはるかに重要です。