33

純粋にJavaScriptで書かれたチェスゲームAPIはありますか?フラッシュなし!チェスゲームで使用されるアルゴリズム(一般)を知っている人はいますか?

4

3 に答える 3

56

チェスのアルゴリズムはどのように機能しますか?:

チェス コンピューターがやろうとしているのは、5 つ、10 つ、または 20 手先のボード ポジション ツリーを生成することです。任意のボード位置に約 20 の可能な移動があると仮定すると、5 レベルのツリーには 3,200,000 のボード位置が含まれます。10 レベルのツリーには、約 10,000,000,000,000 (10 兆) の位置が含まれます。コンピュータが計算できる木の深さは、ゲームをプレイするコンピュータの速度によって制御されます。最速のチェス コンピューターは、毎秒数百万のボード位置を生成および評価できます。

ツリーが生成されると、コンピューターは「ボードの位置を評価する」必要があります。つまり、コンピューターはボード上のピースを見て、ピースの配置が「良い」か「悪い」かを判断する必要があります。これを行う方法は、評価関数を使用することです。考えられる最も単純な関数は、各面のピースの数をカウントするだけです。コンピューターが白でプレイしていて、ボードの特定の位置に白の駒が 11 個と黒の駒が 9 個ある場合、最も単純な評価関数は次のようになります。

  11 - 9 = 2 

明らかに、チェスの場合、一部の駒は他の駒よりも価値があるため、その公式は単純すぎる. したがって、式は各タイプのピースに重みを適用する場合があります。プログラマーが考えているうちに、ボードの位置、センターのコントロール、チェックするキングの脆弱性、対戦相手のクイーンの脆弱性、およびその他の多くのパラメーターなどを追加して、評価関数をますます複雑にします。しかし、関数がどんなに複雑になっても、そのボード ポジションの「良さ」を表す 1 つの数字に凝縮されます。

ソース

基本レベルのチェックでチェスをプレイできる独自の JavaScript 'エンジン' を構築するためのステップ バイ ステップの Javascript Chess with CPU oppo

下にスクロールすると、純粋に JavaScript に基づいた非常に限定されたチェス エンジンのソース コードが含まれています。また、試用できるゲームの動作バージョンと、独自のゲームを構築するために必要なすべてのリソースも含まれています。

役立つリソース:

于 2010-01-13T08:31:47.423 に答える
5

アルゴリズムの議論については、Chess Programming Wikiを試してください。

本格的なチェス エンジンに適したテクニックが、Web ベースのゲームに適しているとは限りません。実際のチェス エンジンは桁違いに高速に実行され、数メガバイトのオープニング ブックを使用し、各ターンに数分から数時間を費やします。実際のチェス エンジンは 12 プライよりも深く検索しますが、JavaScript は合理的な Web 時間で 6 プライをはるかに超えることはありません。したがって、ピーススクエアオラクルのようなものは、検索が深まるにつれて減少し、おそらく負のリターンを持ち、その結果、チェスプログラミング界では流行遅れになっていますが、JavaScriptエンジンには間違いなく適しています. 80 年代に人々が行っていたことを実行すると、ほとんどの訪問者を打ち負かす、機敏で扱いやすいエンジンになります。

そしてもちろん、他の人が何をしているかを実際に調べたいとは思いません。アルファベータ検索のバリエーションがあることを確認してから、評価関数とその他すべてを調整してください。

2002 年と 2012 年に、小さなパブリック ドメインの JavaScript エンジンであるp4wnを書き直しました。アルファベータとピーススクエア オラクルを使用します。おそらくGarbochess-JSよりも弱いですが、Garbochess には p4wn エンジン全体よりも大きなオープニング ブックがあります。

于 2012-07-12T04:24:55.233 に答える
1

Computer Chess Blogでは、C# チェス エンジンの作成について説明しています。これは JavaScript ではありませんが、構文は十分に似ているため、さまざまなチェス エンジン コンポーネントをよく理解できます。

また、チェス エンジンを Web 対応にしたい場合は、Silverlight GUI で C# を使用することを検討してください。JavaScript よりも .NET の方が優れたパフォーマンスが得られます。学習するにつれて、これはより強力な (より深い検索) チェス プログラムに変換されます。Silverlight Chess の良い例は、GeeksWithChess.comにあります。

于 2010-01-26T17:58:54.297 に答える