链接帖子:如何使用 MouseListener 在网格中查找特定单元格
我正在尝试创建一个由 100 个单元组成的 10x10 网格的 Battleships 游戏。Grid 扩展了 JPanel,而 Cell 也扩展了 JPanel。早些时候,我制作了上面的链接,询问如何实现 MouseListener 来做到这一点。由于代码都在该页面上,我只是参考它。
有人在我接受的那个链接上发布了一个很好的答案。我现在可以使用 MouseListener 来检测网格上任何单元格中的移动、点击等。
但是,我遇到了另一个障碍。我正在尝试将船舶放在我的网格上。我现在忘记了方向(因为我假设所有船只都将水平放置)。第一艘船将占用五个牢房。我想将光标移动到网格上的一个单元格上,并有四个其他“尾部”单元格,在光标所在单元格的右侧,也突出显示。如果总共没有五个空闲单元格(可能是因为光标太靠近网格边缘),单元格将变为红色。否则,它们将变为绿色。
放置第一艘船后,需要放置第二艘。它有四个单元格长。因此,当悬停在一个单元格上时,它将具有三个单元格的“尾部”,依此类推。
我对如何改变颜色、如何处理方向以及如何从五艘船变为四艘船等感到满意。但是,我不知道如何一次选择多个单元格。有人知道如何实施吗?我很想发布我尝试过的东西,但事实是,我什么都没有。