gpt4 book ai didi

java - 数独求解器 Java

转载 作者:行者123 更新时间:2023-12-01 22:41:31 24 4
gpt4 key购买 nike

好的,所以我已经编写了一个数独解算器..当我运行调试来检查它是否经历了一切..它是..但它似乎不起作用。它会将其打印出来,并且会更改“.”。到 0。但仅此而已。当它循环时,它不会将 0 更改为数字。

    public class SudokuSolver {

int[][] sudoku;
String data;
public SudokuSolver()
{
getPuzzle();
solvePuzzle(0,0);
}

private void getPuzzle()
{
try
{
Scanner in = new Scanner(new File("C:/Users/Ben/workspace/Sudoku Solver/src/puzzle1.txt"));
sudoku = new int[9][9];
for(int y = 0; y<9;y++)
{
for(int x = 0; x<9; x++)
{
data = in.next();
if(data.equals("."))
sudoku[x][y]=0;
else
sudoku[x][y] = Integer.parseInt(data);
}
}
in.close();
}
catch(Exception e)
{

}
for(int y = 0; y<9; y++)
{

for(int x = 0; x<9; x++)
{
System.out.print(sudoku[x][y]);
if(x ==2 || x ==5)
System.out.print(" ");
if(x==8)
{
System.out.print("\n");
}

}
if(y == 2|| y == 5)
{
System.out.println(" ");
}
}

}

private boolean isValid(int x, int y, int num)
{
int xSection = x/3;
int ySection = y/3;

for ( int row = 0; row < sudoku.length; row++ )
{
if(sudoku[row][y] == num)
{
return false;
}
}
for( int col = 0; col < sudoku.length; col++)
{
if(sudoku[x][col] == num)
{
return false;
}
}


for(int box = 3*xSection; box < 3*xSection + 3; box++)
{
for(int boxY = 3*ySection; boxY < 3*ySection + 3; boxY++)
{
if(sudoku[box][boxY] == num)
{
return false;
}
}

}
return true;
}

private int xPosition(int x, int y)
{
if(x<8)
{
return x+1;
}
else
{
return 0;
}
}

private int yPosition(int x, int y)
{
if(x<8)
{
return y;
}
else
{
return y+1;
}
}
private boolean solvePuzzle(int x, int y)
{
if( x >= 9 || y >= 9)
{

return true;
}

else
{
for(int num = 1; num < 10; num++)
{
if(isValid(x,y,num))
{
sudoku[x][y] = num;
if( solvePuzzle(xPosition(x,y), yPosition(x,y)) )
{
return true;
}
else
{
sudoku[x][y] = 0;
}

}


}
return false;
}


}




public static void main(String args[])
{
SudokuSolver solver = new SudokuSolver();
}
}

最佳答案

您正在 getPuzzle 方法中打印谜题,该方法是在调用 solvePuzzle 之前进行的。解决后您需要打印拼图。

关于java - 数独求解器 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26070101/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com