mirror of
https://github.com/Sosokker/sudoku-terminal-game.git
synced 2025-12-19 13:44:05 +01:00
is_valid_solution iin SudokuSolver/add gitignore
This commit is contained in:
parent
00b925c17c
commit
7d73c84bb6
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
__pycache__/
|
||||||
@ -42,3 +42,14 @@ class SudokuSolver:
|
|||||||
return False
|
return False
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def is_valid_solution(grid):
|
||||||
|
# Check if each row, column, and 3x3 box contains all numbers from 1 to 9
|
||||||
|
for i in range(9):
|
||||||
|
row_nums = set(grid[i])
|
||||||
|
col_nums = set(grid[j][i] for j in range(9))
|
||||||
|
box_nums = set(grid[i//3*3+j//3][i%3*3+j%3] for j in range(9))
|
||||||
|
if row_nums != set(range(1, 10)) or col_nums != set(range(1, 10)) or box_nums != set(range(1, 10)):
|
||||||
|
return False
|
||||||
|
return True
|
||||||
@ -17,7 +17,7 @@ def test_solve_sudoku():
|
|||||||
[0, 0, 0, 0, 8, 0, 0, 7, 9]
|
[0, 0, 0, 0, 8, 0, 0, 7, 9]
|
||||||
]
|
]
|
||||||
assert SudokuSolver.solve(grid)
|
assert SudokuSolver.solve(grid)
|
||||||
assert is_valid_solution(grid)
|
assert SudokuSolver.is_valid_solution(grid)
|
||||||
|
|
||||||
# Test an invalid Sudoku grid
|
# Test an invalid Sudoku grid
|
||||||
grid = [
|
grid = [
|
||||||
@ -33,13 +33,3 @@ def test_solve_sudoku():
|
|||||||
]
|
]
|
||||||
assert not SudokuSolver.solve(grid)
|
assert not SudokuSolver.solve(grid)
|
||||||
|
|
||||||
def is_valid_solution(grid):
|
|
||||||
# Check if each row, column, and 3x3 box contains all numbers from 1 to 9
|
|
||||||
for i in range(9):
|
|
||||||
row_nums = set(grid[i])
|
|
||||||
col_nums = set(grid[j][i] for j in range(9))
|
|
||||||
box_nums = set(grid[i//3*3+j//3][i%3*3+j%3] for j in range(9))
|
|
||||||
if row_nums != set(range(1, 10)) or col_nums != set(range(1, 10)) or box_nums != set(range(1, 10)):
|
|
||||||
return False
|
|
||||||
return True
|
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user