私は経験が限られており、それを拡張しようとしている新しいプログラマーです。これは私が学校の外で試みる最初のプロジェクトであるため、何を知る必要があるのか わからないため、リソースがかなり変動します. ただし、Java を使用した基本的な GUI に関しては、いくつかの小さな基礎があります。
チェス ゲームを作成し、後で AI を実装したいと考えています。ただし、現時点では、ゲーム自体を構築しているだけです。今、私は単純な GUI フレームワークが必要です。きれいに見える必要も、複雑である必要もありません。駒がどこにあるかボードを表示し、駒をクリックすると、移動できる場所が強調表示され、正方形をクリックすると、出来上がり、移動が完了します。
これが、GUI インターフェイスの設計における私の主な質問です。ロジック部分とは別に行われますか?言い換えれば、ピースを作成する場合、.jpg などを用意する必要がありますか? または、この広場にポーンがある場合、これらの座標にポーンの絵を表示する別のクラスを作成することはできますか? GUI を構築するために何を知る必要がありますか? 私は主にGoogleを使用して周りを見回していますが、GUI部分を別のペースで進めながらチェス盤で作業を続けてもよいかどうかを知ることと一緒に、出発点をいただければ幸いです.
先に感謝します。私が尋ねる質問がすぐに見つかる情報である場合は申し訳ありません. 触れたことはあるかもしれませんが、私がやりたいことに対するその重要性を認識していなかった可能性があります。
再度、感謝します :)
興味のある人のためにこれを更新します。私は自分がやろうとしていることのより良い形を持っており、この構造を頭の中で持ち、紙に翻訳しています。現時点では、簡単にするためにすべて Java で記述します。
ともあれ、長文失礼いたしました。誰もこれを読む必要はありません。:)
少し混乱するかもしれませんが、MVC 形式を使用してみます。
モデル-ピースボード[8][8]を作成します。ピースは抽象クラスになり、座標と今呼び出している抽象メソッド canMove(x,y) で構成されます。私はもともと move(x,y) も持っていましたが、ピースが移動しないことに気付きました。したがって、私は canMove メソッドを使用して、ピースが実際にそのアクションを実行できるかどうかをコントローラーに確認させます。
コントローラ - ここではボードを作成し、すべての部品をセットアップします。ほとんどすべてを規制するので、これは最大のクラスになると思います。
View - これは基本的に GUI です。
これが、コントローラー/ビューの調整が機能するはずだと私が思う方法です。
コントローラには hand という変数があります。ピースを最初にクリックすると、ピース自体のパラメーターである黒/白かどうかがチェックされます。それが正しい色であれば、それは手札に割り当てられます。次に、double 配列内のすべての正方形をチェックします。canMove() が true の場合、ビューでその四角を強調表示します。次に、2 回目のクリックで canMove() がチェックされます。true の場合は、同じ色の駒があるかどうかを確認し、そうでない場合はそこに移動します。false の場合、何もありません。手をクリックすると手が空になります。私にとって、問題はビューがコントローラーとどのように相互作用するかです。後でそれを理解します。
すべての移動の最後に、すべてのピースの canMove() をチェックして、キングがその中にいるかどうかを確認します。もしそうなら、チェックしてください。チェックメイトについては、キングの周りのマスにマークを付け、彼がいるマスを含め、それらがすべてマークされているかどうかを確認する方法全体を用意すると思います。
ですから、私が理解しなければならないことを説明していないことに気付いたことがいくつかあります。ポーンのキャプチャとポーンの動きは非常に具体的です。キャスティング。canMove が適用されるためには、一部のピースの場合に障害物があってはなりません。
私のクラスでは何も教えてくれなかったので、ビューの構築は苦痛になるでしょう。最後になると思います。ビューなしでテストする方法がわからないので、最後ではないかもしれません。