私のグループが大学で行っている「ゲーム」プロジェクト用の戦艦ゲームを作成しようとしています。以前はほとんどすべての出力が Eclipse コンソールにあったため、これまで GUI を実際に使用したことはありませんでした。
まず、GUI クラスを作成しました。これは実質的に「ランナー」クラスです。JFrame をロードします。
表示される 2 つのゲーム ボードのディメンションを設定し、ネストされた for ループを使用して GUICells からグリッドを作成する 2 つ目のクラス、GUIGrid があります。
これには、マウスの動作を検出し、各セルの x 座標と y 座標を格納するためのリスナーなどが含まれます。テスト コードの一部を実行して、どちらのグリッドでもクリックできるようにしました。ポップアップで、そのセルがどの座標であるかが正確にわかります。
これらのクラスに加えて、船の種類の 5 つのサブクラスを持つ Ship クラスと、プレーヤーの名前を格納し、使用する Ship オブジェクトの配列を作成する Player クラスがあります。
最後に、論理クラスがあります。GridLogic クラスと CellLogic クラスがあります。前者はネストされた for ループを使用して、CellLogic オブジェクトの 2D 配列を作成します。次に、CellLogic クラスは、セルが攻撃されたかどうかに関する座標や情報などを格納します。
私の質問 (ついに!) は、これはシステムをモデル化する正しい方法ですか? CellLogic と CellGUI のクラスを見ると、かなり似ているように見えます。さらに、GUI をマウス クリックに応答させることはできますが、GUI をロジックに接続するのに非常に苦労しています。たとえば、船をグリッドに追加して、どの位置に船を格納するかを 2D 配列に格納する方法がわかりません。膨大な量のコードを投稿することなく、誰かが私が少なくとも正しい軌道に乗っているかどうか、またはシステムを分離しすぎているかどうかを教えてくれることを望んでいました.