如何检查是否可以从数组中的字母形成更多单词?

时间:2015-09-11 22:11:49

标签: java swing arraylist jbutton

我一直在制作一个单词形成游戏(样本:http://www.popcap.com/games/bookworm/online)很长时间。一切都已完成,除了最后一件我无法弄清楚如何实现的事情。

简而言之,我正在显示一个带有字母的Jbuttons的2D网格(我已经实现了JButton的图形版本)。用户必须从按钮上的随机字母形成单词,并添加分数。现在,当用户无法再形成任何单词时,我希望游戏结束。我尝试用来实现它的想法如下:

我将网格的所有坐标存储在一个ArrayList中(我将这个称为AllCoordinates)。然后,我将所选JButton的坐标存储在一个单独的ArrayList中(我将称之为Coordinates)。我比较了两个列表,并将坐标存储在坐标中不存在的ArrayList AllCoordinates中。我不知道如何用这么多随机坐标形成各种单词。有人可以用这种方式帮助我吗?

如果您对此有任何更好的想法,我将非常感谢您的意见。

PS
我很抱歉没有发布代码。这里发布太长而且复杂

谢谢:)

1 个答案:

答案 0 :(得分:1)

不要使用如此多的随机坐标形成各种单词。"取而代之的是,

  1. 在初始化时,将已排序的字典读入名为List<String>的{​​{1}}。

  2. 在网格中使用wordList个实例,如herehere所述;如果需要,您可以按here所示计算坐标。

  3. 在按钮共享的JToggleButton中,选择ItemListener时,String会保留selectedWord

  4. 使用Collections.binarySearch()确定wordList是否包含selectedWord