問題タブ [chess]
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.
algorithm - プログラマーパズル:ゲーム全体でチェス盤の状態をエンコードする
厳密には質問ではなく、もっとパズルです...
何年にもわたって、私は新入社員のいくつかの技術面接に携わってきました。標準的な「Xテクノロジーを知っていますか」という質問をする以外に、私はそれらがどのように問題に取り組むかについても感じ取ろうとしました。通常、面接の前日にメールで質問を送信し、翌日までに解決策を考え出すことを期待しています。
多くの場合、結果は非常に興味深いものになります-間違っていますが、興味深いものです-そして、彼らが特定のアプローチをとった理由を説明できれば、その人はまだ私の推薦を得るでしょう。
だから私は、StackOverflowの聴衆に私の質問の1つを投げかけると思いました。
質問:チェスゲーム(またはそのサブセット)の状態をエンコードするために考えることができる最もスペース効率の良い方法は何ですか?つまり、駒が合法的に配置されたチェス盤が与えられた場合、この初期状態と、ゲーム内のプレーヤーが行ったその後のすべての合法的な動きの両方をエンコードします。
答えにコードは必要ありません。使用するアルゴリズムの説明だけです。
編集:ポスターの1つが指摘しているように、私は移動間の時間間隔を考慮していませんでした。オプションの追加としてそれも自由に説明してください:)
EDIT2:さらに明確にするために...エンコーダー/デコーダーはルールを認識していることを忘れないでください。実際に保存する必要があるのは、プレーヤーの選択だけです。それ以外のものは、エンコーダー/デコーダーによって認識されていると見なすことができます。
EDIT3:ここで勝者を選ぶのは難しいでしょう:)たくさんの素晴らしい答え!
chess - オンライン チェス ゲームでチートを防止するには?
多くのオンライン チェス ロビーで、詐欺師がメイン ゲーム ウィンドウと同時にチェス プログラムを開く「エンジン」の例を見てきました。次に、対戦相手の動きがコンピューターに中継されるように設定し、(ほとんどの場合) 勝つまでコンピューターの動きをコピーします。
ゲーム開発者およびモデレーターとして、この状況について何をすべきでしょうか?
wpf - WPFのチェス盤
Winformsで何年も開発してきましたが、今はWPFに切り替えてチェス盤を作りたいと思っています。残念ながら、どこから始めればよいのかわかりません。WPFを使用すると、非常に確信が持てなくなり、再び初心者のように感じます。誰かが基本的なデザインの概要を説明できますか?私は8x8グリッドから始めて、正方形には長方形を使用し、ピースには画像を使用すると思います。その後?私は何かが足りないのですか?
編集:それはちょうどユーザーインターフェースについてです。舞台裏で何が起こっているかは問題ありません。
algorithm - コンピュータチェスのための現在知られている最良のアルゴリズム?
アルゴリズムの名前を知りたかっただけです。ありがとう
c# - C# ミニマックス ツリーの実現
C# Chess AI を書こうとしています。
その時点で、minmax ツリーを構築する必要があります。再帰を使用してみますが、再帰関数はノードごとに約 1 000 000 回呼び出す必要があります。約 60,000 回の呼び出し後にスタック オーバーフロー例外が発生します。
javascript - JavaScriptのチェスゲーム
純粋にJavaScriptで書かれたチェスゲームAPIはありますか?フラッシュなし!チェスゲームで使用されるアルゴリズム(一般)を知っている人はいますか?
java - Java列挙のビット演算。RE:チェスEG
チェス盤を表す配列をCで保持している場合、大まかに次のように列挙されたアイテムで配列を埋めることができます。
したがって、次のようなロジックを許可します。
Javaでは、列挙型のビット単位の演算がサポートされていないことがわかりました。さらに、ピースを黒と白、ルークとキングにすることはできないため、かなりすばらしいEnumSetを簡単に適用することはできません。
だから私が考えていることは次のようになります:
明らかに、必要なのはどちらか一方(and操作または初期化された値)だけです。また、独自の定義で列挙型を使用できれば素晴らしいのですが、できません。したがって、次のような行:
出ています。
私の質問は何でしたか?私が行方不明になっているより良い方法はありますか?また、序数のintをenumで定義された値に解析して、caseステートメント全体を回避することはできますか?
c# - マルチプレイヤーチェスを開発するには?
私は C# を使用してマルチプレイヤー チェスを開発したいと思っていますが、C# を使用してチェスの制限ルールを実装する方法がまったくわかりません。この分野で働く方法についての考えがありません。
チェス プログラムのソース コードの簡単なサンプルはありますか? 率直に言って、私はチェスのソース コードや、チェスでムーブ ルールを実装する方法について検索することに成功しませんでした。
あなたが私を助けることができると思うなら、それはありがたいです.
よろしく。
performance - AI チェスの有効な動き
AI Chess を書こうとしていますが、問題があります。私は駒の移動ルールの準備ができており、無効な移動を削除しようとしています (キングをチェックしておくなど)。私はこのようなものを書きました:
ただし、minimax + alpha beta を使用しており、その検証により検索が非常に遅くなっています。
chess - チェス盤の騎士の最短経路
私は次のプログラミングコンテストのために練習してきましたが、私は完全に当惑している質問に出くわしました。しかし、それは決して思い浮かばないということで、指を交差させるのではなく、今学ぶべき概念だと感じています。
基本的には、チェス盤の騎士の駒を扱います。開始位置と終了位置の2つの入力が与えられます。次に、目標の場所に到達するために騎士がたどることができる最短経路を計算して印刷することが目標です。
私は最短経路のようなものを扱ったことがなく、どこから始めればよいのかさえわかりません。これに取り組むために私はどのような論理を採用していますか?
PS関連性がある場合は、騎士の通常の動きを補うために、騎士が行うことができる(潜在的に)8つの動きによって形成される正方形の四隅に移動できるようにする必要があります。騎士の場所。