Sudoku: Difference between revisions

Content deleted Content added
Line 5,304:
sb &= $grid[i * 9 + j]
sb &= " "
if j == 2 or j == 5: sb &= "| "
sb &= "| "
sb &= "\n"
if i == 2 or i == 5: sb &= "------+------+------\n"
sb &= "------+------+------\n"
sb
 
Line 5,316 ⟶ 5,318:
proc checkValidity(self: Sudoku, v, x, y: int): bool =
for i in 0..8:
if grid[y * 9 + i] == v or grid[i * 9 + x] == v: return false
return false
var startX = (x div 3) * 3
var startY = (y div 3) * 3
for i in startY..startY + 2:
for j in startX..startX + 2:
if grid[i * 9 + j] == v: return false
return false
result = true
 
proc placeNumber(self: Sudoku, pos: int) =
if solved: return
return
if pos == 81:
solved = true
Line 5,336 ⟶ 5,341:
grid[pos] = n
placeNumber(pos + 1)
if solved: return
return
grid[pos] = 0