制作虚假的数独坐标红色

时间:2017-03-27 16:53:16

标签: java algorithm sudoku coordinate

Yoo,希望这不太具体。 我制作了一个数独游戏,我得到了一个方法来处理每个错误的所有错误的x和y坐标(让它们变成红色);我在一个字符串中分层。如果我找到一个不正确的数字,我将坐标分层为:x,y为每个错误,然后添加更多像:x,y,x,y,x,y ... SudokuResultCount是我保持坐标的另一个类,FalseCoordinates是我保留坐标的字符串。因此,当我按下"纠正我的数独" - 按钮时,这种方法就会消失。

这是用这种方法做的:

public static void totalfalsecoordinates(int array[][], int array2[][]){
        SudokuResultCount.setFalseCoordinates("");


        for(int x=0; x < 9; x++)
        {
            for(int y=0; y < 9; y++){
                try{
                    if(array2[x][y] != array[x][y]&& array2[x][y] != 0)
                    {
                        SudokuResultCount.setFalseCoordinates(x + y + "");
                    }
                }
                catch(Exception e){

                }
            }
        }
    }

我稍后会在此方法中运行此方法:

try{
            int falseCoordinatesLength = SudokuResultCount.getFalseCoordinates().length();
            if(falseCoordinatesLength > 0)
            {
                SudokuMetoder.totalfalsecoordinates(KeepingUpWithTheSudokus.getSolution(), KeepingUpWithTheSudokus.getStartingvalues());
                int targetStringchar = 0;
                int targetStringchar1= 1;
                int numbersOfLoops = SudokuResultCount.getFalseCoordinates().length();
                int realnumbersOfLoops = numbersOfLoops/2;
                for(int number = 0; number < realnumbersOfLoops; targetStringchar = targetStringchar + 2, targetStringchar1 = targetStringchar1 + 2, number++){
                    char a_char = SudokuResultCount.getFalseCoordinates().charAt(targetStringchar);
                    char b_char = SudokuResultCount.getFalseCoordinates().charAt(targetStringchar1);
                    int x = Character.getNumericValue(a_char);
                    int y = Character.getNumericValue(b_char);
                    System.out.println(y);
//                  int x = (int)a_char;
//                  int y = (int)b_char;
                    textFields[x][y].setStyle("-fx-border-color: red ; -fx-border-width: 2px ;");
                }   
            }
            }
            catch(Exception e3){
                String str = "2" + "2" + "";                            
                char b_char = str.charAt(0);
                int x = Character.getNumericValue(b_char);
                System.out.println(x);
                textFields[2][3].setStyle("-fx-border-color: red ; -fx-border-width: 2px ;");
                textFields[2][3].setStyle("-fx-background-color: transparent, #909090, transparent, red;");
            }

如果字符串长度的数量> 0然后搜索。因为我一次从字符串中取两个数字,所以我取字符串的长度并将它除以2。

然后我将它们变成字符,这样我就可以决定选择哪一个。 如果我通过坐标:0,1 有什么不对吗?好的,然后让数组[0] [1]闪烁红色 - 否则继续前进。 然后它移动0,1 2,3 4,5 ...

如果过于具体请求删除!

感谢

1 个答案:

答案 0 :(得分:0)

赢得最有可能帮助任何人,但我找到了答案。它搞砸了我添加x + y +&#34;&#34;进入我在其中分层坐标的字符串。我必须这样做:&#34;&#34; + x +&#34;&#34; + y +&#34;&#34;