Sudoku: Difference between revisions

Content added Content deleted
m (syntax highlighting fixup automation)
Line 3,168: Line 3,168:


=={{header|EasyLang}}==
=={{header|EasyLang}}==
<syntaxhighlight lang="text">len row[] 810
<syntaxhighlight lang="text">
len col[] 810
len row[] 90
len box[] 810
len col[] 90
len box[] 90
len grid[] 82
len grid[] 82
#
#
func init . .
func init . .
for pos range 81
for pos = 1 to 81
if pos mod 9 = 0
if pos mod 9 = 1
s$[] = strsplit input " "
s$ = input
if s$ = ""
s$ = input
.
len inp[] 0
for i = 1 to len s$
if substr s$ i 1 <> " "
inp[] &= number substr s$ i 1
.
.
.
dig = number inp[(pos - 1) mod 9 + 1]
if dig > 0
grid[pos] = dig
r = (pos - 1) div 9
c = (pos - 1) mod 9
b = r div 3 * 3 + c div 3
row[r * 10 + dig] = 1
col[c * 10 + dig] = 1
box[b * 10 + dig] = 1
.
.
dig = number s$[pos mod 9]
grid[pos] = dig
r = pos div 9
c = pos mod 9
b = r div 3 * 3 + c div 3
row[r * 10 + dig] = 1
col[c * 10 + dig] = 1
box[b * 10 + dig] = 1
.
.
.
.
Line 3,191: Line 3,203:
#
#
func display . .
func display . .
for i range 81
for i = 1 to 81
write grid[i] & " "
write grid[i] & " "
if i mod 3 = 2
if i mod 3 = 0
write " "
write " "
.
.
if i mod 9 = 8
if i mod 9 = 0
print ""
print ""
.
.
if i mod 27 = 26
if i mod 27 = 0
print ""
print ""
.
.
Line 3,209: Line 3,221:
pos += 1
pos += 1
.
.
if pos = 81
if pos > 81
# solved
# solved
call display
call display
break 1
break 1
.
.
r = pos div 9
r = (pos - 1) div 9
c = pos mod 9
c = (pos - 1) mod 9
b = r div 3 * 3 + c div 3
b = r div 3 * 3 + c div 3
r *= 10
r *= 10
Line 3,234: Line 3,246:
grid[pos] = 0
grid[pos] = 0
.
.
call solve 0
call solve 1
#
#
input_data
input_data
5 3 0 0 2 4 7 0 0
5 3 0 0 2 4 7 0 0
0 0 2 0 0 0 8 0 0
0 0 2 0 0 0 8 0 0
1 0 0 7 0 3 9 0 2
1 0 0 7 0 3 9 0 2

0 0 8 0 7 2 0 4 9
0 2 0 9 8 0 0 7 0
0 0 8 0 7 2 0 4 9
7 9 0 0 0 0 0 8 0
0 2 0 9 8 0 0 7 0
0 0 0 0 3 0 5 0 6
7 9 0 0 0 0 0 8 0

9 6 0 0 1 0 3 0 0
0 5 0 6 9 0 0 1 0</syntaxhighlight>
0 0 0 0 3 0 5 0 6
9 6 0 0 1 0 3 0 0
0 5 0 6 9 0 0 1 0
</syntaxhighlight>


=={{header|Elixir}}==
=={{header|Elixir}}==