Can';我搞不懂Java数独解决方案检查器

Can';我搞不懂Java数独解决方案检查器,java,sudoku,drjava,Java,Sudoku,Drjava,我现在正在用Java开发一个数独解决方案检查器,它分为两部分。第二部分希望在代码中添加五个新的“特定方法”,它们是对行、列、块的布尔检查,然后在循环中返回true或false。checkAndPrintReport还支持为每行检查失败、列检查失败和 块检查失败。这是我到目前为止所做的 public boolean checkAndPrintReport( ) { return false; } public boolean isGoodRow( int yRowParam )

我现在正在用Java开发一个数独解决方案检查器,它分为两部分。第二部分希望在代码中添加五个新的“特定方法”,它们是对行、列、块的布尔检查,然后在循环中返回true或false。checkAndPrintReport还支持为每行检查失败、列检查失败和 块检查失败。这是我到目前为止所做的

 public boolean checkAndPrintReport( )
  {
   return false;
  }
 public boolean isGoodRow( int yRowParam ) 
  {  
  int sum = 0;
  for ( int x = 0; x <9; x++)
    {
      sum = sum + getCell (x,yRowParam);
    }
  return( true );
  } 
 public boolean isGoodColumn( int xColParam ) 
  {
   int sum = 0;
   for (int y = 0; y < 9 ;y++)
    {
        sum = sum + getCell (xColParam, y);
    }
    return( true );
  } 
 public boolean isGoodBlock(int xBlockP, int yBlockP)  
  { 
    int sum = 0;
    for (int x=0; x<3; x++)
    {
        for (int y=0; y<3;y++)
        {
            sum = sum + getCell (xBlockP+x, yBlockP+y);
        }
    }
   return( true );
  }
 public boolean checkAll()
  {
  }
public boolean checkAndPrintReport()
{
返回false;
}
公共布尔值isGoodRow(int-yRowParam)
{  
整数和=0;
对于(int x=0;xDefine

那么您的代码如下所示

public boolean isGoodColumn( int xColParam ) {
   int sum = 0;
   for (int y = 0; y < 9 ;y++) {
        sum = sum + getCell (xColParam, y);
    }
   return SUM == sum;
 } 


public boolean isGoodColumn( int xColParam ) {
   int sum = 0;
   for (int y = 0; y < 9 ;y++) {
        sum = sum + getCell(xColParam, y);
    }
   return SUM == sum;
 } 

 public boolean isGoodBlock(int xBlockP, int yBlockP) { 
    int sum = 0;
    for (int x=0; x<3; x++) {
        for (int y=0; y<3;y++) {
            sum = sum + getCell(xBlockP+x, yBlockP+y);
        }
    }
   return SUM == sum;
 }
public boolean isGoodColumn(int xColParam){
整数和=0;
对于(int y=0;y<9;y++){
sum=sum+getCell(xColParam,y);
}
返回和==和;
} 
公共布尔值isGoodColumn(int xColParam){
整数和=0;
对于(int y=0;y<9;y++){
sum=sum+getCell(xColParam,y);
}
返回和==和;
} 
公共布尔isGoodBlock(int xBlockP,int yBlockP){
整数和=0;

对于(int x=0;x首先使现有代码正常工作。所有这些函数始终返回true,因为总和值未经测试。我认为测试总和不足以确保数独游戏有效。我将用五个数字填充整个表,并通过所有测试。@PMF通过测试的代码是什么?我认为用户会从中受益:)我曾经为此写过一些代码,但这不是重点。我只是说这里提出的算法没有得到预期的结果。
public boolean isGoodColumn( int xColParam ) {
   int sum = 0;
   for (int y = 0; y < 9 ;y++) {
        sum = sum + getCell (xColParam, y);
    }
   return SUM == sum;
 } 


public boolean isGoodColumn( int xColParam ) {
   int sum = 0;
   for (int y = 0; y < 9 ;y++) {
        sum = sum + getCell(xColParam, y);
    }
   return SUM == sum;
 } 

 public boolean isGoodBlock(int xBlockP, int yBlockP) { 
    int sum = 0;
    for (int x=0; x<3; x++) {
        for (int y=0; y<3;y++) {
            sum = sum + getCell(xBlockP+x, yBlockP+y);
        }
    }
   return SUM == sum;
 }