我已经学习Java大约4个月了,这是我学习的第一门编程语言.对于学校,我们必须做一个项目,一个基于控制台的游戏.我选择了Boggle.
我有一个带有骰子的ArrayList,每个都有一个随机的"向上",然后ArrayList被洗牌,一个二维数组充满了每一面的值.此时阵列充满了字符串,字符可能是更好的选择,但是很容易改变.
我面临的问题是我需要能够在数组中找到单词.Boggle中的单词可以向任何方向移动,每个单独的块只能使用一次,但路径可以交叉,也可以对角搜索.我设法找到数组中是否存在第一个字母.如果不是,则可以中止搜索,如果存在,则需要开始搜索,搜索单词的第二个字符,该字符必须在第一个字符的块周围.
我做了一些数学运算,发现它总是以"i-1和j-1"为例,作为周围区块的左上角.我解决了这个问题,但似乎无法找到单词...而且,如果周围有2个"e",我不知道如何搜索每个"e"的单词.到目前为止,这是我的代码:
这是我目前最重要的课程,Gameboard类
public class Gameboard {
private List<Dice> dices = new ArrayList<Dice>();
private final int boardSize;
private String[][] board;
private boolean [][] blocksAvailable;
private Random random = new Random();
public GameBoard() {
// Making the board with a given size (will be changeable later but is "4" for now)
boardSize = 4;
board = new String[boardSize][boardSize];
blocksAvailable = new boolean[boardSize][boardSize];
for(int i = 0; i < boardSize; i++) {
for(int j = 0; j < boardSize; j++) …Run Code Online (Sandbox Code Playgroud)