問題タブ [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.
java - Java プログラミング - チェスの動き (基本、AI なし)
チェス ゲームの設計について助けが必要です。私はすでに始めていますが、私は Java にかなり慣れていないため、実際にはまったくプログラミングに慣れていません。
とにかく、抽象クラス Piece とサブクラスとしてのさまざまな部分があります。すべてのサブクラスに対して定義したい抽象クラスにメソッド movePiece があります。
現在行われているのは、駒をある正方形から別の正方形に移動することだけです。Piece オブジェクトを保持できる Square クラスがあり、ボードは 64x1 Square 配列で構成されています。
駒の動きは分かったけど、プログラミングはどうやってするの?MVC パターンを適用してみたいと思っていますが、パターンを使用するのはこれが初めてです。
基本的に、Graphics2D を使用して、各 Square のボックスを作成することを考えていました。次に、プレーヤーが駒をクリックすると、移動後に移動先として使用できる正方形が色で囲まれます。プレーヤーがこれらの四角形の 1 つをクリックすると、movePiece メソッドに既にあるコードが実行されます。
私がやりたいことは、Piece の各サブクラスで movePiece メソッドをオーバーライドすることです。問題は、これらのメソッドの 1 つでコードがどのように見えるかということです。たとえば、Pawn サブクラスを取り上げます。
コピー/貼り付けするコードを求めているのではなく、これを行う方法についてのいくつかの指針、最終的にはいくつかのサンプル コードを求めています。
ありがとう!
あなたは私が知っている非常に基本的なコードを見たいと思っていました。[64] を [8][8] に変更します。必要以上に難しくしないようにしています。おそらく、Color と Owner を属性として組み合わせて、列挙型 (BLACK または WHITE) にすることができます。
フォーメーションが良くない場合は申し訳ありません。
java - JLabel を JPanel に追加すると、JPanel が「非表示」になりますか?
GridLayout にいくつかの JPanel があり、それぞれに MouseAdapter があり、JLabels (テキスト付き) を作成して JPanel のそれぞれに追加します。JLabels にはリスナーがないことに注意してください。これをレンダリングして JPanel をクリックしようとすると、または最終的に JLabel をクリックしようとすると、MouseAdapter はそれをイベントとして登録しますか?
基本的に、JPanel でイベントを登録し、JPanel で JPanel の上にテキストを表示するだけにしたいと考えています。また、パネルには背景色があります。
JLabel がイベントの登録を「隠す」場合、どうすればこれを回避できますか?
console - ArrayIndexOutOfBoundsException - なぜまだこの問題があるのですか?
2D 配列を使用して、チェス盤をコンソールに出力しようとしています。テスト目的で、ボードに「x」文字を単純に入力しようとしています。ただし、配列に次の値を入力しようとすると、ArrayIndexOutOfBounds 例外が発生し続けます。
エラーは明らかに次の場所で発生しますboardArray[i][j] = 'x';
すべてが順調に進んでいるように見えますが、なぜこれが機能しないのかわかりません。
編集:配列にデータを入力しましたが、印刷を正しくフォーマットできません。内容はすべて、「x」文字の 8x8 正方形としてではなく、1 行に印刷されます。これが私が今持っているものです:
java - アリーナGUI用のチェスエンジンを書く
アリーナ GUI http://www.playwitharena.com用のチェス エンジンの実装に興味があります。エンジンを Arena で使用できるようにするため (つまり、実際に Arena からエンジンをインポートできるようにするため) に従わなければならない特定のガイドラインに関する何らかの情報を知っていますか?
また、Java を使用して Arena チェス エンジンを実装することは可能だと思いますか、それとも C++ を使用する必要がありますか?
また、エンジンをインポートできる他のボード GUI を知っている場合、特にエンジンが Java で記述できる場合は、その旨をお知らせください。
database - Scid のオープニング ブック ビューアーを探しています
オープニング ライブラリを使用してチェス ボットを実装しようとしています。
Scidからオープニング ブック ファイル (opening.bin) をダウンロードしました。
ダウンロードできるビューアー ユーティリティはありますか?
algorithm - エイトクイーンのパズルを解くためのアルゴリズムを求める
重複の可能性:
C++でのダム8クイーンの問題
こんにちは私はこの質問に出くわしました**
チェス盤に8つの王を配置するすべての方法を印刷するアルゴリズムを記述して、同じ行、列、対角線を持つものがないようにします。
****
対角部分も確認する方法は?また、考えられるすべてのケースを列挙する方法は?
事前に感謝します。
c++ - C++ エラー「X はこのスコープで宣言されていません」
そこで、このチェス エンジンをダウンロードしました: http://www.ascotti.org/programming/chess/chess.htm
そして、Eclipseでコンパイルして実行しようとしました...しかし、その後、大量のエラーが表示されました...
その中には、bitboard.h、hash.h、および pawnhash.h を含む複数のファイルに「X はこのスコープで宣言されていません」というエラーが多数あります....
そのエラーは何を意味し、これらのコードからこれらのエラーをどのように解決しますか?
また、bitboard.h のように Uint64 が宣言されていないエラーがたくさんあります...
もう一度言いますが、それはなぜでしょうか。また、どのように解決しますか?
thx事前に
編集:エラーログ
編集
これは、定義ステートメントが次の platform.h の内容です。
エラーが表示されるファイルの 1 つ、bitboard.h:
android - アンドロイド チェス ゲームの例
チェスゲームの本/ブログにAndroidのオープンソースコードまたはチュートリアルがあるかどうか疑問に思っています(似ているが十分に異なるゲームを書いているので、とにかく無視する必要があるため、AIを除外できますとにかく自分のAIを正すために)。私はいくつか調べましたが、私が見つけたものはすべて実際には役に立ちませんでした。少なくともボードゲームのフレームワークを探しているので、どんな助けでも素晴らしいでしょう。
java - Webページの色/パターンの認識
学校のプロジェクトとして、学習チェスのアプリケーションを作成してみたいと思います。私の最初の計画は、このAIをそれ自体と単純に対比させることでしたが、それが成功したかどうかを実際に示すには、それがどれだけうまく進んでいるかを示すことができる必要があります。これを行うために、私はそれがchess.comなどのサイトで評価されたゲームをプレイすることを望みます。ただし、(まだ)パブリックAPIはありません。
そのため、色や画像を認識するJavaのプログラムを作りたかったのです。すべての位置の内部2次元配列を保持し、ボード上のピースを認識します。JavaRobotClassのようなものを使用してウィンドウでこれを行う方法を見つけたと思います。
しかし、私がやりたいのは、このWebページを内部ウィンドウで開き、バックグラウンドでこれを継続することです。フォアグラウンドにいる必要なしに、自分のウィンドウ内の色を認識する方法はありますか?
編集:私はちょうど見つけたこのブラウザコンポーネントを使用することを計画しています。ページのフルページスナップショットを作成して、BufferedImage(?)として保存できることに気づきました。これにより、これを簡単に行うことができますか?
編集2:「他の人、コンピューター/チェスエンジン、または終盤テーブルベースからの外部支援は完全に禁止されています」と読みました。私は、コンピューターにすべての演奏をさせることは確かにそれに含まれていると思います。だから私は別のサイトを使ってみるかもしれないので、chess.comに固有の答えはそれをカットしません!
c++ - 抽象クラスのクローンの作成
私はチェスプログラムを書いていて、という名前の抽象クラスがありPieces
ます。次のように、ポインターを使用してメインクラスでこの抽象クラスを使用します。Pieces * newset = currentboard[][];
このボード上で手を動かせば、実際に動きが作られます。ボードの現在の状態を分析したいので、ボードのコピーを作成します。それ、どうやったら出来るの?
Piece
私のクラスと私がやっていることのサンプルを以下に示します。
派生 Class のサンプルを次に示します。
クラスを使用して移動する:
ボードに永続的な変更が加えられないように、ポインターを使用せずにこのクラスを参照できるようにしたいと考えています。