Tag: 数独

如何用独特的解决scheme生成Sudoku板

如何用独特的解决scheme生成Sudoku板? 我认为是初始化一个随机板,然后删除一些数字。 但我的问题是如何保持解决scheme的独特性?

在Android中了解R类

在android中,我不确定我是否理解了R类。 我正在通过数独的例子,我有这段代码: switch (v.getId()) // the id of the argument passed is evaluated by switch statement { case R.id.about_button: // Intent i = new Intent(this, about.class); startActivity(i); break; // More buttons go here (if any) … } 我是Java新手,但是从我收集的内容看来,它正在接受input(触摸屏上的触摸屏)并评估参数。 然后,如果关于button被识别,则设置案例陈述,并且创build新的界面屏幕,然后导航到电话上。 这是正确的吗? 如果我有这个正确的要点,为什么要与“R”级的交易? 为什么它被称为识别button的ID? 我认为超类(在这个项目中)是SudokuActivity类。

如何消除数独广场的凸面缺陷?

我正在做一个有趣的项目:使用OpenCV从input图像解决Sudoku(如谷歌护目镜等)。 我已经完成了任务,但最终我发现了一个小问题,我来到这里。 我使用OpenCV 2.3.1的Python API编程。 以下是我所做的: 阅读图像 find轮廓 select最大面积的(也有点相当于平方)。 findangular点。 例如下面给出: ( 注意这里的绿线与Sudoku的真正边界正好相符,所以Sudoku可以正确地扭曲 。请检查下一张图片) 扭曲形象到一个完美的广场 如图像: 执行OCR(为此我使用了OpenCV-Python中简单数字识别OCR中给出的方法) 该方法运作良好。 问题: 看看这个图片。 执行此图像上的步骤4给出以下结果: 绘制的红线是数独边界真实轮廓的原始轮廓。 绘制的绿色线是近似的轮廓,它将是变形图像的轮廓线。 当然,在数独的上边缘,绿线和红线之间是有区别的。 所以在歪曲的时候,我没有得到数独的原始界限。 我的问题 : 我怎样才能在Sudoku的正确边界,即红线,或怎样才能消除红线和绿线之间的区别? 在OpenCV中有没有这样的方法?

JFormattedTextField未正确清除

我正在做这个任务,制作一个解决数独的程序。 我有一个SudokuTextBox的网格面板扩展JFormattedTextField。 我有一个MaskFormatter,所以它只接受一个整数每个文本框。 然后在我的面板中,我有这个代码,当一个关键是相关的。 public void keyReleased(KeyEvent e) { SudokuTextBox tb = (SudokuTextBox) e.getSource(); int row = tb.getRow(); int col = tb.getCol(); int value = toInteger(tb.getText()); //System.out.println(value); if(sudoku.isValid(row, col, value)) { sudoku.set(row, col, value); } else { sudoku.set(row, col, 0); tb.setText(null); } tb.setCaretPosition(0); sudoku.print(); } 事情是,如果我把一个有效的值在一个文本框中,然后我回去并输入一个无效的值(由数独规则)文本框被清除。 但是,当我向前看,前面的有效值显示在文本框中。 包含所有已输入数字的我的sudokumatrix会清除值,因此它只在相应的文本框中显示。 当我将“SudokuTextBox扩展JFormattedTextField”改为“SudokuTextBox扩展JTextField”时,使事情变得更加混乱,就像一个魅力。 但我不能设置JTextField的大小,以便它是正方形,我不能强制每个文本框只有一个整数。 我错过了一些非常明显的东西吗