You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

299 lines
4.8 KiB

package main
import (
"lib"
)
func main() {
valid := [][]string{
// 3 9 6 2 4 5 7 8 1
// 1 7 8 3 6 9 5 2 4
// 5 2 4 8 1 7 3 9 6
// 2 8 7 9 5 1 6 4 3
// 9 3 1 4 8 6 2 7 5
// 4 6 5 7 2 3 9 1 8
// 7 1 2 6 3 8 4 5 9
// 6 5 9 1 7 4 8 3 2
// 8 4 3 5 9 2 1 6 7
{
".96.4...1",
"1...6...4",
"5.481.39.",
"..795..43",
".3..8....",
"4.5.23.18",
".1.63..59",
".59.7.83.",
"..359...7",
},
// 1 4 5 8 9 2 6 7 3
// 8 9 3 1 7 6 4 2 5
// 2 7 6 4 3 5 8 1 9
// 5 1 9 2 4 7 3 8 6
// 7 6 2 5 8 3 1 9 4
// 3 8 4 9 6 1 7 5 2
// 9 5 7 6 1 4 2 3 8
// 4 3 8 7 2 9 5 6 1
// 6 2 1 3 5 8 9 4 7
{
"1.58.2...",
".9..764.5",
"2..4..819",
".19..73.6",
"762.83.9.",
"....61.5.",
"..76...3.",
"43..2.5.1",
"6..3.89..",
},
// 4 7 5 9 3 6 2 8 1
// 9 3 2 8 5 1 7 6 4
// 6 8 1 2 7 4 3 5 9
// 5 1 7 4 9 2 8 3 6
// 3 4 9 7 6 8 1 2 5
// 2 6 8 3 1 5 4 9 7
// 1 5 3 6 8 7 9 4 2
// 7 9 4 5 2 3 6 1 8
// 8 2 6 1 4 9 5 7 3
{
"..5.3..81",
"9.285..6.",
"6....4.5.",
"..74.283.",
"34976...5",
"..83..49.",
"15..87..2",
".9....6..",
".26.495.3",
},
// 3 4 7 9 1 5 6 2 8
// 2 9 6 7 8 3 5 4 1
// 5 1 8 6 2 4 9 7 3
// 8 6 4 1 5 7 2 3 9
// 1 3 2 4 6 9 7 8 5
// 9 7 5 8 3 2 1 6 4
// 4 5 9 2 7 8 3 1 6
// 7 8 1 3 9 6 4 5 2
// 6 2 3 5 4 1 8 9 7
{
"34.91..2.",
".96.8..41",
"..8.2..7.",
".6..57.39",
"1.2.6.7..",
"97..3..64",
"45.2.8..6",
".8..9..5.",
"6.3..189.",
},
// 9 6 7 3 8 1 4 2 5
// 4 1 8 5 2 7 9 3 6
// 2 5 3 9 6 4 8 7 1
// 5 9 1 7 4 8 3 6 2
// 7 2 4 1 3 6 5 8 9
// 8 3 6 2 5 9 1 4 7
// 1 4 9 8 7 2 6 5 3
// 6 7 5 4 9 3 2 1 8
// 3 8 2 6 1 5 7 9 4
{
"..73..4.5",
"....2.9..",
"253.6487.",
".9.74.36.",
"....3..8.",
"8362.9.47",
"1..8.26.3",
"6......18",
".8261...4",
},
// 9 3 5 6 4 7 1 2 8
// 1 2 4 3 9 8 6 7 5
// 6 8 7 5 2 1 4 9 3
// 8 7 3 2 6 4 5 1 9
// 4 9 2 1 7 5 3 8 6
// 5 6 1 8 3 9 2 4 7
// 2 1 8 7 5 6 9 3 4
// 3 4 6 9 8 2 7 5 1
// 7 5 9 4 1 3 8 6 2
{
"935..7..8",
"...3.8.7.",
"6..5..49.",
".73..4...",
"4..175.8.",
".618..247",
".187.....",
"..6.8.75.",
"75.4.3862",
},
// 3 6 5 4 2 9 7 8 1
// 2 8 7 3 5 1 9 4 6
// 4 1 9 8 6 7 5 3 2
// 1 5 4 9 7 8 2 6 3
// 8 7 2 6 3 5 4 1 9
// 6 9 3 1 4 2 8 5 7
// 7 4 1 5 9 3 6 2 8
// 9 3 6 2 8 4 1 7 5
// 5 2 8 7 1 6 3 9 4
{
"..5.2...1",
".8735..46",
"4...6.5..",
".5.9.....",
".7..3541.",
"69314.857",
"7415..6.8",
"...284..5",
"5.....3.4",
},
// 9 6 7 5 4 8 2 3 1
// 8 1 5 2 3 6 4 7 9
// 2 3 4 7 9 1 8 6 5
// 5 2 3 6 7 4 1 9 8
// 7 4 8 1 5 9 6 2 3
// 1 9 6 8 2 3 5 4 7
// 3 5 1 9 6 2 7 8 4
// 4 8 2 3 1 7 9 5 6
// 6 7 9 4 8 5 3 1 2
{
"..75...3.",
"8..23...9",
".3479.86.",
"..3..4198",
".4815...3",
"..6.23..7",
"351.6.78.",
"4..31...6",
".7...5..2",
},
// 7 5 8 6 9 4 3 2 1
// 2 6 1 8 5 3 4 9 7
// 4 3 9 1 2 7 8 6 5
// 8 2 7 5 4 1 9 3 6
// 5 4 3 7 6 9 2 1 8
// 1 9 6 3 8 2 5 7 4
// 6 7 4 2 3 5 1 8 9
// 9 1 2 4 7 8 6 5 3
// 3 8 5 9 1 6 7 4 2
{
".58..4.21",
".6.853..7",
".39.2...5",
"8....1..6",
"..37..21.",
"1.6.825..",
"67.2..18.",
"9..4...5.",
".8.9167.2",
},
// 4 2 7 1 9 5 8 3 6
// 5 3 1 6 8 2 9 4 7
// 8 6 9 3 4 7 2 1 5
// 3 5 4 2 7 6 1 8 9
// 2 1 6 9 3 8 7 5 4
// 9 7 8 4 5 1 6 2 3
// 1 9 2 5 6 3 4 7 8
// 7 4 3 8 1 9 5 6 2
// 6 8 5 7 2 4 3 9 1
{
".2.1....6",
"53..8294.",
"8..34...5",
"3542761..",
"..6.3...4",
"9....162.",
".9...3.78",
"7438.9...",
"..5..43.1",
},
}
invalid := [][]string{
{
".932..8.",
"27.3.85..",
".8.73.254",
"9758...31",
"....74.6.",
"6.45.38.7",
"7....2.48",
"32.4...7.",
"..8.579..",
},
{
".867.2..4",
".2.5..8..",
"154.9.237",
".7.9.5..1",
".29..4.18",
"51.6...42",
"2.5.7..83",
"...153...",
"39...8.75",
},
// . . 7 3 . . 4 . 5
// . . . . 2 . 9 . .
// 2 5 3 . 6 4 8 7 .
// . 9 . 7 4 . 3 6 .
// . . . . 3 . . 8 .
// 8 3 6 2 . 9 . 4 7
// 1 . . 8 . 2 6 . 3
// 6 . . . . . . 1 8
// . 8 2 6 1 . . . 4
{
".7....28.",
".2...6.57",
"8654729..",
"..925..64",
".4..19.7.",
"7.8..4..9",
"3..7..698",
"..79.1...",
"59..28.39",
},
{
"..213.748",
"8.4.....2",
".178.26..",
".68.9.27.",
".932....4",
"5..46.3..",
"..9.24.23",
"..63..19.",
"385..1.2.",
},
{
"9.46.3..1",
"37.1..2.6",
"..6..93.4",
"..13..9.5",
"56..91...",
"82...461.",
"..79...4.",
"425.167..",
"1.2..75.8",
},
}
for _, v := range valid {
lib.ChallengeMain("sudoku", v...)
}
for _, v := range invalid {
lib.ChallengeMain("sudoku", v...)
}
lib.ChallengeMain("sudoku")
lib.ChallengeMain("sudoku", "not", "a", "sudoku")
}