# [Community Puzzle] Sudoku Validator

https://www.codingame.com/training/easy/sudoku-validator

Created by @redCroc,validated by @Deltaspace,@TBali and @lhm.
If you have any issues, feel free to ping them.

C-PROGRAMMING
Hello , i got a problem. I validated everything but when i submit it gives me subgrid error. I donâ€™t understand why. I give you my subgrid algo if c != 0 ERROR. Sorry for the complexity i just began in programming and iâ€™m not now working on optimization. Is there a problem you see ?

``````for ( int k = 0 ; k < 9 ; k += 3){// subgrill x of the grill
for ( int x = 0 ; x < 9; x += 3){// subgrill y of the grill
int tab[9] = { 1,2,3,4,5,6,7,8,9};//tab with each number possible by grill
for ( int i = 0 ; i < 3 ; i++){// x of the sub grill
for ( int j = 0 ; j < 3 ; j++){// y of the surbgrill
for (int z =0 ; z < 9 ; z++){//take off the correspondent number of the tab
if ( sudoku[i][j] == tab[z]){ tab[z] = 0;}
}
}
}
for (int m = 0 ; m < 9; m++){
c += tab[m];//if there was a mising number took frome the tab c !=0
}
if ( c != 0){break;}``````

@LouisGel Hint: You never use `k` and `x`â€¦

1 Like

Oh okay , the fact that the test sub-grid was working inducted me in error. Thank you very much !!

In the classic Sudoku you need to also have distinct numbers on the diagonals. It was a fun problem, though.

@Qoss No, adding the diagonal constraints is a variant sometimes referred to as X-Sudoku (or Sudoku X).

1 Like

Yes, you are right. I donâ€™t know what I was thinking. Lol

You should add another test case.

A wrong way to validate a sudoku grid would be to assume that all lines & columns & subgrid would sum to 45 (I did just that as a â€śjokeâ€ť). As this is true for a correctly filled sudoku grid, it will be also trueâ€¦ with a grid filled with only 5â€™s.

1 Like

Hello, Iâ€™m having an issue and I donâ€™t know what to do.
I wrote a solution in Python3, all tests passed in IDE and when I submit it, it fails the â€śColumn errorâ€ť test and this message appears:

The following validators differ from the puzzle test cases to prevent hard coded solutions. This is why you can have some fails here even if all of the tests provided in the IDE have been successfully passed.

But my solution is not at all hardcoded. Since Iâ€™m not sure you can see my solution Iâ€™ll post it here:

``````numbers = set(range(1, 10))
sudoku = []
for i in range(9):
row = list(map(int, input().split()))
if numbers - set(row):
print("false")
exit()
sudoku.append(row)
for i in range(9):
col = {x[0] for x in sudoku}
sub = {z for x in sudoku[(i//3)*3:(i//3)*3+3] for z in x[i*3%9:i*3%9+3]}
if numbers - col | numbers - sub:
print("false")
exit()
print("true")
``````

What makes it seem hardcoded? How can I improve my solution?

Props to @redCroc, I love sudoku
Thanks a lot

The message is not accusing anyone of hardcoding. It is just attempting to answer a FAQ of â€śwhy I can pass the test cases but still fail the validatorâ€ť. Perhaps it should not have mentioned hardcoding but to find better wording for explanation.

So you should not follow the â€śhardcodingâ€ť hint to trace the cause of failure. It is just that there is a bug in your code which was not triggered in the test case but was triggered in the hidden validator. This situation is very common to everyone. Just try your best to debug it, by reviewing, analysing the code, by using a debugger, by unit tests, by testing the code using extra inputs, etc.

1 Like

Hi Kariin,
You effectively made a mistake in your code, this error is unfortunately not caught by the IDE tests, but well caught by the validator tests.
I wonâ€™t tell you where you made a mistake exactly but Iâ€™m sure you can find it relatively easily.

1 Like

OMG!!! Ahahahha so embarrassing, here I was thinking I did something great and there was a ninja 0! Damn ninjas! Sorry for wasting your time

Does â€śninjaâ€ť mean bug in this context? Now I learned something newâ€¦

Donâ€™t be embarassed, making mistakes and failing some validators is happening sometimes with all of us.

Nice small puzzle mister Croc.
Et bonsoir !

What does subgrid error mean?

For example, if a subgrid (one of the nine 3Ă—3 square) is not correct.

1 Like

Very hard for a nooby like me Haha.
Iâ€™ll see in few days if I pass it !

I failed testcase 4 even though not hardcoded I think?

``CODE REMOVED BY MODERATOR``

Please donâ€™t post complete code like this.
Validators are different from the tests to avoid hard-coded solution, but your code can fail to pass them even if it is not hard-coded, if it donâ€™t handle a border-case not present in the IDEâ€™s testsâ€¦

1 Like

Hi guys! I was trying to find someone who has more experience than me on this platform because Iâ€™m stuck with a python game (Sudoku Validator). To me it seems like I did nothing wrong, so if anyone can give me a tip, I would be glad to receive it.

``````i = 0
while i  <  len(myList)  - 1:  # for example: myList = [1, 2, 3, 4, 5, 6, 7, 8, 9]
if myList[ i ] == myList[ i + 1]:
print("false")  # to validate, either "false" or "true"
quit()
else:
i += 1

print("true")
``````

This returns incorrect on â€ścolumn errorâ€ť, â€śsubgrid errorâ€ť and â€śrubbish errorâ€ť, the others test cases are correct.