2017-12-02 12 views
0

私はソードクチェッカーを作成しています。これは私がこれまで行ってきたことですが、壁に当たったことがあります。私のチェッカーでは、intからbooleanにメソッドの1つを変更することは許されていません。スクロクチェッカーin java help helpブール値からintへの切り替え

public class SudokuVerifier { 
public static int[][] candidateSolution() 
{ 
    Scanner input = new Scanner(System.in); 
    int [][] sudokuboard = new int [9][9]; 

    for (int i = 0; i < 9; i++) 
     for (int j = 0; j < 9; j++) 
      sudokuboard[i][j] = input.nextInt(); 

    input.close(); 
    return sudokuboard; 
} 
public int verify(String candidateSolution) 
//checking rows 
{ 
    for (int i = 0; i < sudokuboard.length; i++) 
     if (validcheck(sudokuboard[i])) 
      return 1; 

} 
/** 
* Tells the candidate to enter their sodoku puzzle 
* it then gets stored into a 2 dimensional array 
* array gets returned 
* tells them if it's right or wrong 
* @author sultan 
* 
*/ 
public static void main(String[] args) 
{ 
int [][] sudokuboard = candidateSolution(); 
System.out.print(solutionChecker(sudokuboard) ? "right solution" : "Wrong solution"); 

} 
public static boolean solutionChecker(int [][] sudokuboard) 
{ 

return true; 

}}

「公共のintが検証」私は変更することはできません一部であり、それは私にエラーを与えています。だから私は、行、列、3X3ボードを計算するためにブール値の代わりに私のリターンのためにintsを使用して、このコードを多かれ少なかれ同じように保つ方法があるのだろうかと思います。誰かが助けてください、私はつまらないです

+0

だから、あなただけのメソッドの戻り値1または0(trueまたはfalse)にし、代わりにブール値のint型を返すメソッドを使用します。 – prsvr

+0

または、有効性チェックに失敗したフィールドの量を返します.0は「エラーなし」==「解決済み」です。 – daniu

答えて

0

ちょうど返すint 1意味正しいと0意味が正しくありません。組み合わせが正しいかどうか本当validcheckリターンと仮定すると:

public int verify(String candidateSolution) 
//checking rows 
{ 
    for (int i = 0; i < sudokuboard.length; i++) 
     if (! validcheck(sudokuboard[i])) 
      return 0; 

    return 1; 

} 

全くブール値を使用していない(ANSI Cのような)言語があります。 0は満たされていない状態を意味し、0以外は条件が満たされたことを意味します。

+0

ありがとうございました。あなたが私にこれを手伝うことができるかどうか疑問に思うもう一つの質問。何らかの理由で私の "sudokuboard"変数が自分の主な方法で使用されているにもかかわらず、私の検証計算ではうまく動作しません。それは私がそれを上に置くとき "sudokuboardは変数に解決することはできません"と私に言っている。なぜこれが分かっていますか? "sudokuboard"変数は、列と行については[9] [9]です – Sultan

+0

あなたの 'sudokuboard'変数は' main'メソッドで宣言されていて、 'show'メソッドの外側には表示されないので' verify'メソッドは見ることができませんそれ。変数を 'main'メソッドの外で宣言するか、' main'から 'verify'メソッドに何とか渡す必要があります。それは本当にシンプルで、私はあなたがそれを処理すると思います。幸運;) – zlatan55

+0

私はint [] []を行ったsudokuboard =新しいint [9] [9];それは問題を解決したように見えましたが、それが正しいかどうか私はあまり確信していません。私は何時間もこのスドクチェッカーのことをやろうとしていましたが、少しだけ私を助けて、それが正しいのかどうか教えてください。本当にそれが間違っているとすべてを台無しにし続けたくない – Sultan

0

この関数は、if-Statementがtrueの場合に値を戻します。 文が偽のときにintを返すためには、追加する必要があります。

モリッツ