0

次に、[このように]見える8パズルゲームを作成する必要があります。

ここに画像の説明を入力してください

インストラクターから、Piece.java、EightPuzzle.java、およびEightPuzzlePanel.javaの3つの異なるクラスを作成するように依頼されました。ご覧のとおり、Piece.javaは、この8つのパズルボードの「1」、「2」のような個々のピースを表しています。EightPuzzle.javaは、これらの9個/ボタンを保持するゲームボードを表します。EightPuzzlePanel.javaはGUI関連のものです。

ですから、私の質問は、2D配列であるPiece [] [] piece = new Piece [] []を作成する必要があるためです。また、これらのピースをボード上に配置する必要もあります。9つのJButtonを作成し、2D配列を9つのJButtonとリンクさせることができると思いました(または2D配列を並べ替えるより良い方法があります)が、その方法がわかりません。

また、ボタンはマウスとキーボードの両方で制御する必要があります。これは私にとってもう一つの挑戦です。

4

2 に答える 2

2

これは宿題なので詳しくは説明しませんが、次のようにします。

  1. MakePieceJButtonクラスを拡張します。このPieceオブジェクトは、表示するテキストと、レンダリングする画像の場所を受け取ります。に画像を追加する方法については、オンラインで多くの例を見つけることができるはずですJButton
  2. クラスを拡張し、Grid EightPuzzleLayoutを使用してピースをグリッド内にきれいにレンダリングします。このクラスは、レンダリングするオブジェクトの 2D 配列を受け取ります。JPanelPiece
  3. クラスEightPuzzlePanelも拡張してください。JPanelこのクラスは、別の JPanel ( EightPuzzle) を受け取り、必要なその他のボタンを追加します。
  4. 最後に、拡張する Main クラスを作成し、JFrameそれに追加しますEightPuzzlePanel(これには、他のボタンを備えた他のパネルが含まれている必要があります)。
于 2012-10-23T06:15:17.353 に答える
0

マウスとキーについては、いくつかのアクションリスナーを設定する必要があります。

この問題では、1-D配列を使用できます。配列に9個のピース​​が格納されている限り、それらを適切な場所に配置するために使用できますlayout manager。配列をトラバースするのは簡単です。

于 2012-10-23T06:18:03.583 に答える