0

现在我需要编写一个 8 拼图游戏,看起来 [像这样]

在此处输入图像描述

老师让我们写三个不同的类,分别是 Piece.java、EightPuzzle.java 和 EightPuzzlePanel.java。如您所见,Piece.java 代表这八个拼图板上的每个单独的块,如“1”、“2”;EightPuzzle.java 代表了包含这 9 个棋子/按钮的游戏板。EightPuzzlePanel.java 是 GUI 的东西。

所以我的问题是,既然我们需要创建一个 Piece[][]piece = new Piece[][],一个 2D 数组,我们还需要将这些棋子排列在棋盘上。我想我可以创建 9 个 JButtons 并将 2D 数组与 9 个 JButtons 链接(或者有更好的方法来对 2D 数组进行排序),但我不知道该怎么做。

此外,按钮需要由鼠标和键盘控制。这对我来说是另一个挑战。

4

2 回答 2

2

由于这是家庭作业,因此我不会详细介绍,但这就是我将如何去做:

  1. MakePiece扩展了JButton类。该Piece对象获取要显示的文本以及您希望它呈现的图像的位置。您应该能够在网上找到大量关于如何将图像添加到JButton.
  2. EightPuzzle扩展JPanel类,并使用网格布局碎片整齐地呈现在网格中。这个类接受一个二维Piece对象数组,然后渲染。
  3. 使EightPuzzlePanel也扩展JPanel类。此类接受另一个 JPanel ( EightPuzzle) 并附加您可能需要的任何其他按钮。
  4. 最后创建一个扩展的 Main 类,JFrame然后我将其附加EightPuzzlePanel到它(它又应该包含另一个面板和其他按钮)。
于 2012-10-23T06:15:17.353 回答
0

对于鼠标和键,您需要设置一些动作侦听器。

对于这个问题,您可以只使用一维数组。只要您将 9 块存储在数组中,您就可以使用您layout manager将它们放在正确的位置 - 然后遍历数组很简单。

于 2012-10-23T06:18:03.583 回答