September 2017 Update
This commit is contained in:
parent
bba7bfd280
commit
ba8067c3b7
14570 changed files with 153136 additions and 63871 deletions
|
|
@ -5,38 +5,34 @@ func check(i, j) is cached {
|
|||
jd == id && return true
|
||||
jm == im && return true
|
||||
|
||||
var id2 = id//3
|
||||
var jd2 = jd//3
|
||||
|
||||
jd2 == id2 || return false
|
||||
|
||||
jm//3 == im//3
|
||||
(id//3 == jd//3) &&
|
||||
(jm//3 == im//3)
|
||||
}
|
||||
|
||||
func solve(board) {
|
||||
for i in ^board {
|
||||
board[i] && next
|
||||
var *t = board[^board -> grep {|j| check(i, j) }]
|
||||
func solve(grid) {
|
||||
for i in ^grid {
|
||||
grid[i] && next
|
||||
var t = [grid[{|j| check(i, j) }.grep(^grid)]].freq
|
||||
|
||||
{ |k|
|
||||
t.contains(k) && next
|
||||
board[i] = k
|
||||
solve(board)
|
||||
} * 9
|
||||
t.has_key(k) && next
|
||||
grid[i] = k
|
||||
solve(grid)
|
||||
} << 1..9
|
||||
|
||||
board[i] = 0
|
||||
grid[i] = 0
|
||||
return nil
|
||||
}
|
||||
|
||||
for i in ^board {
|
||||
print "#{board[i]} ";
|
||||
for i in ^grid {
|
||||
print "#{grid[i]} "
|
||||
print " " if (3 -> divides(i+1))
|
||||
print "\n" if (9 -> divides(i+1))
|
||||
print "\n" if (27 -> divides(i+1))
|
||||
}
|
||||
}
|
||||
|
||||
var board = %i(
|
||||
var grid = %i(
|
||||
5 3 0 0 2 4 7 0 0
|
||||
0 0 2 0 0 0 8 0 0
|
||||
1 0 0 7 0 3 9 0 2
|
||||
|
|
@ -50,4 +46,4 @@ var board = %i(
|
|||
0 5 0 6 9 0 0 1 0
|
||||
)
|
||||
|
||||
solve(board)
|
||||
solve(grid)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue