小编Rob*_*Rob的帖子

数独解决方法

我的数独求解方法存在问题.该计划的工作方式如下; 当电路板启动时,它是空的,用户在电路板上添加了几个数字,然后点击一个Solve按钮,程序试图解决它.如果我将相同的数字放在同一行中,一切正常.因此,如果用户添加1,1,0,0 ... 0.在拼图中它无法解决它,因为它的两个1彼此相邻并且将继续尝试找到一个沉闷,即使它是无法解决的难题.但是,如果它们都是0(空),它将立即解决它,就像Id在左上角放置1和2一样.如果我只是在其中放入一些随机数将检测到它无法解决(或者如果它是一个有效的谜题将解决它)

我正在考虑说什么theNumber == (row, col) equals thenNumber == (row+1, col),它应该return false是因为它是一个重复的数字.

这是我试图在solve方法中添加的代码,显然没有成功.

if ((puzzle.getNum(row, col) == a) == (puzzle.getNum(row + 1, col) == a)) {
   return false;
}
Run Code Online (Sandbox Code Playgroud)

非常感谢帮助

java recursion solver sudoku backtracking

7
推荐指数
1
解决办法
1093
查看次数

限制数字输入JTextField

我工作的一个数独解算器,我试图限制量的数字,用户可以进入细胞,以及能够输入数字,目前还接受信件.它的工作原理如下:如果用户输入"11125455876",它将只使用输入的最后一个数字(在本例中为"6").我想将用户可以输入单个单元格的数量限制为1,并且只接受数字1-9.我不确定我该怎么做.所以也许它只会覆盖以前的数字或者其他东西,如果我按一个字母键作为"a"就不会发生任何事情.

这是我的代码:

public PanelGUI(int size) {

    super(size);
    NumberFormat f = NumberFormat.getInstance();
    f.setMaximumIntegerDigits(1);
    f.setMinimumIntegerDigits(0);
    f.setGroupingUsed(false);
    cells = new JTextField[size][size];
    panel.setLayout(new GridLayout(size, size));
    for (int i = 0; i < size; i++) {
        for (int j = 0; j < size; j++) {
            cells[i][j] = new JFormattedTextField(f);
            cells[i][j].setEditable(true);
            cells[i][j].setFont(boldFont);
            cells[i][j].setBorder(BorderFactory.createMatteBorder(1, 1, 1,
                    1, Color.white));
            cells[i][j].setHorizontalAlignment(JTextField.CENTER);
            panel.add(cells[i][j]);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我正在使用number format.

java swing limit jtextfield

5
推荐指数
1
解决办法
2400
查看次数

了解Java解释

我正在做一个练习,我需要实现一个课程,并且很难理解解释.

这是解释/练习:

 * Adds all of the elements in the specified set, for which it is
 * possible, to this set.
 * post: all elements, for which it is possible, in the
 * specified set are added to this set.
 * @return true if this set changed as a result of the call
Run Code Online (Sandbox Code Playgroud)

这就是答案

public boolean addAll(SimpleSet<? extends E> s) {
    Iterator<? extends E> it = s.iterator();
    boolean changed = false;
    while (it.hasNext()) {
        changed = add(it.next());
    }
    return changed; …
Run Code Online (Sandbox Code Playgroud)

java

0
推荐指数
1
解决办法
155
查看次数

标签 统计

java ×3

backtracking ×1

jtextfield ×1

limit ×1

recursion ×1

solver ×1

sudoku ×1

swing ×1