タグ付けされた質問 「chess」

27
チェスに最適なアルゴリズムはありますか?[閉まっている]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 昨年休業。 この質問を改善する 私は最近、チェスコンピュータの可能性について、コーディング担当以外の人と話し合っていました。私は理論に精通していませんが、十分知っていると思います。 私は、チェスで常に勝ったり、止まったりする決定論的なチューリングマシンはあり得ないと主張しました。player1 / 2の動きのすべての組み合わせのスペース全体を検索しても、コンピューターが各ステップで決定する単一の動きは、ヒューリスティックに基づいていると思います。ヒューリスティックに基づいているため、対戦相手が実行できるすべての動きに必ずしも勝るとは限りません。 逆に、私の友人は、コンピュータが「間違い」の動きを起こさなければ、常に勝つか引き分けになると思っていました(しかし、あなたはそれをどのように定義していますか?)。しかし、CSを採用したプログラマーである私は、賢明な反対者が与えられたとしても、あなたの良い選択でさえ、結局は「間違い」の動きを強いられる可能性があることを知っています。あなたがすべてを知っているとしても、あなたの次の動きはヒューリスティックを一致させることに貪欲です。 ほとんどのチェスコンピュータは、可能なエンドゲームを進行中のゲームと一致させようとします。これは、本質的に動的プログラミングトレースバックです。繰り返しになりますが、問題のエンドゲームは回避可能です。 編集:うーん...私はここでいくつかの羽毛をラッフルのように見えます。それは良い。 もう一度考えてみると、チェスのような有限のゲームを解くことには理論的な問題はないようです。チェスはチェッカーよりも少し複雑だと主張します。勝利は必ずしも駒の数の枯渇によるものではなく、仲間によるものです。私の最初の主張はおそらく間違っていますが、私はまだ(正式には)まだ十分に証明されていないものを指摘したと思います。 私の考えた実験は、ツリー内の分岐が行われるときはいつでも、アルゴリズム(または記憶されたパス)は、対戦相手の移動の可能性のある分岐について、(結合されないで)合致へのパスを見つけなければならないというものだったと思います。話し合った後、私たちが夢見るよりも多くのメモリがあれば、これらのパスをすべて見つけることができたので、それを購入します。

3
チェスプログラムを開発するときに、以下の方向配列を指定された値で初期化することの重要性は何ですか?
私は競合プログラミングに不慣れですが、多くの優れたプログラマーがコードに次の4行(特に配列を含むもの)を持っていることに気づきました。 int di[] = { 1, -1, 0, 0, 1, -1, 1, -1 }; int dj[] = { 0, 0, 1, -1, 1, -1, -1, 1 }; int diK[] = { -2, -2, -1, 1, 2, 2, 1, -1 }; int djK[] = { -1, 1, 2, 2, 1, -1, …
106 c++  c  chess 

30
プログラマーパズル:ゲーム全体でチェス盤の状態をエンコードする
厳密には質問ではなく、パズルのようなものです... 長年にわたり、私は新入社員の技術面接にいくつか携わってきました。「Xテクノロジーを知っていますか」という標準的な質問をする以外に、私は彼らが問題にどのように取り組むかについての感触を得ることも試みました。通常、面接の前日にメールで質問を送信し、翌日までに解決策が見つかると期待します。 多くの場合、結果は非常に興味深いものになります-間違っていますが、興味深いものです。その人が特定のアプローチをとった理由を説明できれば、その人は私の推奨を得るでしょう。 だから私はスタックオーバーフローの聴衆に向けて私の質問の1つを投げると思いました。 質問:チェスゲーム(またはそのサブセット)の状態をエンコードするために考えられる最もスペース効率の良い方法は何ですか?つまり、駒が合法的に配置されたチェス盤が与えられた場合、この初期状態と、ゲーム内のプレーヤーが取ったその後のすべての合法的な動きの両方をエンコードします。 答えに必要なコードはなく、使用するアルゴリズムの説明のみです。 編集:ポスターの1つが指摘したように、私は移動の時間間隔を考慮しませんでした。オプションの追加としてそれについても説明してください:) EDIT2:補足説明のために...エンコーダー/デコーダーはルールに対応していることを忘れないでください。実際に保存する必要があるのはプレーヤーの選択だけです。それ以外は、エンコーダー/デコーダーが認識していると見なすことができます。 EDIT3:ここで勝者を選ぶのは難しいでしょう:)たくさんの素晴らしい答え!

16
チェス盤上の騎士の最短経路
私は今度のプログラミング競争のために練習しており、私はちょうど完全に当惑している質問に出くわしました。でも、それを思いついたのではなく、今から学ばなければならないコンセプトだと思います。 基本的に、それはチェス盤上の騎士の駒を扱います。開始位置と終了位置の2つの入力が与えられます。目標は、騎士が目標の場所に到達するために使用できる最短経路を計算して出力することです。 私は最短経路のようなものを扱ったことがなく、どこから始めればよいかもわかりません。これに取り組むためにどのようなロジックを採用しますか? PS何らかの関連性がある場合、彼らはあなたがあなたがナイトの通常の動きを補足することを望んでいます騎士の場所。

3
チェスゲームのオブジェクト指向設計[クローズ]
クローズ。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 2年前に閉鎖されました。 この質問を改善する オブジェクト指向の方法で設計および思考する方法を理解しようとしています。このトピックについて、コミュニティからフィードバックをもらいたいと思っています。以下は、オブジェクト指向で設計したいチェスゲームの例です。これは非常に幅広い設計であり、この段階での私の焦点は、ゲームをシミュレートするために、どのメッセージの責任者とオブジェクトが互いにどのように相互作用するかを特定することです。悪いデザインの要素(高い結合、悪い凝集など)があるかどうか、そしてそれらをどのように改善するかを指摘してください。 チェスゲームには次のクラスがあります ボード プレーヤー ピース 平方 ChessGame ボードは正方形で構成されているため、ボードは正方形オブジェクトの作成と管理を担当することができます。各ピースも正方形上にあるため、各ピースには、それが置かれている正方形への参照もあります。(これは意味がありますか?)次に、各ピースは、ある正方形から別の正方形に移動する責任があります。プレーヤークラスは、彼が所有するすべてのピースへの参照を保持し、それらの作成にも責任があります(プレーヤーはピースを作成する必要がありますか?)。プレーヤーにはメソッドtakeTurnがあり、このメソッドは、ピースの場所を現在の場所から別の場所に変更するピースクラスに属するメソッドmovePieceを呼び出します。今、私は理事会クラスが正確に何に責任を負わなければならないかについて混乱しています。ゲームの現在の状態を判断し、ゲームがいつ終了するかを知る必要があると思いました。しかし、作品が変わるとそれは s場所ボードはどのように更新する必要がありますか?ピースが存在し、ピースが移動すると更新される正方形の個別の配列を維持する必要がありますか? また、ChessGameは最初にボードオブジェクトとプレーヤーオブジェクトを作成し、次にそれぞれ正方形とピースを作成してシミュレーションを開始します。簡単に言えば、これはChessGameのコードがどのように見えるかです。 Player p1 =new Player(); Player p2 = new Player(); Board b = new Board(); while(b.isGameOver()) { p1.takeTurn(); // calls movePiece on the Piece object p2.takeTurn(); } ボードの状態がどのように更新されるかはわかりません。ピースにはボードへの参照が必要ですか?責任はどこにあるべきですか?誰がどのような参照を保持していますか?あなたの入力を手伝って、このデザインの問題を指摘してください。私はデザインの側面にのみ興味があるので、アルゴリズムやゲームプレイの詳細には意図的に焦点を合わせていません。このコミュニティが貴重な洞察を提供できることを願っています。
88 chess  oop 

4
チェスエンジンを書くための良いリソースは何ですか?[閉まっている]
クローズ。この質問はもっと焦点を合わせる必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てるようにします。 6年前に閉鎖されました。 この質問を改善する 私はチェスエンジンを書くことに興味があり(主に学習演習として)、人々が興味を持ったり使用したりできることを知っているリソース、本当に何でも興味があります:論文、本、理論、チュートリアル、有用。
82 resources  chess 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.