Created
September 4, 2012 15:38
-
-
Save dholbrook/3622539 to your computer and use it in GitHub Desktop.
brute force Sudoku solver
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /** | |
| * D Holbrook | |
| * | |
| * Code Club: Sudoku solver | |
| * | |
| * Brute force solver | |
| */ | |
| object Sudoku extends App { | |
| val valid = Range(1, 10) | |
| val rows = Range(0, 81).grouped(9).toIndexedSeq | |
| val cols = Range(0, 9).flatMap(c => rows.map(r => r(c))).grouped(9).toIndexedSeq | |
| val blocks = (for ( | |
| rg <- Range(0, 9).grouped(3); | |
| cg <- Range(0, 9).grouped(3); | |
| r <- rg; | |
| c <- cg | |
| ) yield (rows(r)(c))).grouped(9).toIndexedSeq | |
| val rowsMap = buildLookup(rows) | |
| val colsMap = buildLookup(cols) | |
| val blocksMap = buildLookup(blocks) | |
| def buildLookup(ess: Seq[Seq[Int]]): Map[Int, Seq[Int]] = { | |
| ess.zipWithIndex.flatMap { case (es, ei) => es.map(i => i -> ess(ei)) }.toMap | |
| } | |
| def parsePuzzle(str: String): IndexedSeq[Int] = { | |
| str.map(c => if (c == '.') '0' else c).filter(_.isDigit).map(_.asDigit) | |
| } | |
| def solve(p: IndexedSeq[Int]): Option[IndexedSeq[Int]] = { | |
| def loop(p: IndexedSeq[Int], i: Int, ps: List[Int]): Option[IndexedSeq[Int]] = ps match { | |
| case Nil => None | |
| case hd :: tl => solve(p.patch(i, IndexedSeq(hd), 1)) match { | |
| case Some(pz) => Some(pz) | |
| case None => loop(p, i, tl) | |
| } | |
| } | |
| next(p) match { | |
| case None => Some(p) | |
| case Some((i, ps)) => loop(p, i, ps) | |
| } | |
| } | |
| /** | |
| * Find the index of the next unsolved portion of the puzzle | |
| * | |
| * @param p The puzzle state | |
| * | |
| * @return Option with first unsolved index with a list of possible values, or None | |
| */ | |
| def next(p: IndexedSeq[Int]): Option[(Int, List[Int])] = { | |
| //build list of indexes with value of zero | |
| val unsolved = p.zipWithIndex.filter(_._1 == 0).map(_._2).toList | |
| unsolved match { | |
| //no unsolved | |
| case Nil => None | |
| //first unsolved with list of possible values | |
| case u => Some(possible(p, u).head) | |
| } | |
| } | |
| def possible(p: IndexedSeq[Int], u: List[Int]): List[(Int, List[Int])] = { | |
| /* | |
| * find all possible valid values for a given index via simple elimination | |
| */ | |
| def elim(i: Int): List[Int] = { | |
| val all = (rowsMap(i) ++: colsMap(i) ++: blocksMap(i)).distinct | |
| val used = all.filter(p(_) != 0).map(p(_)) | |
| valid.filter(!used.contains(_)).toList | |
| } | |
| u.map(i => (i -> elim(i))).sortBy(_._2.length) | |
| } | |
| def validate(p: IndexedSeq[Int]): Boolean = { | |
| val sum = valid.sum | |
| val all = rows ++: cols ++: blocks | |
| all.foldLeft(true)((b, es) => if (es.map(p(_)).sum != sum) false else b) | |
| } | |
| def formatPuzzle(p: Seq[Int]): String = { | |
| val rowSep = "------+-------+------\n" | |
| def formatRow(r: Seq[Int]): String = { | |
| "%s %s %s | %s %s %s | %s %s %s\n".format(r.map(v => if (v == 0) "." else v.toString): _*) | |
| } | |
| val rows = p.grouped(9).map(formatRow(_)).toList | |
| rows.foldLeft((0, List[String]())) { | |
| case ((i, sl), v) => (i + 1, if (i < 8 && (i + 1) % 3 == 0) rowSep :: v :: sl else v :: sl) | |
| }._2.reverse.mkString | |
| } | |
| val source = io.Source.fromInputStream(getClass.getResourceAsStream("euler-sudoku.txt")) | |
| val lines = source.mkString.split("\n") | |
| source.close() | |
| val puzzles = lines.toIndexedSeq.grouped(10) | |
| val sum = puzzles.foldLeft(0) { | |
| case (s, p) => | |
| println(p(0)) | |
| val op = parsePuzzle(p.drop(1).mkString) | |
| println(formatPuzzle(op)) | |
| val solved = solve(op).get | |
| println(formatPuzzle(solved)) | |
| println("\n") | |
| s + solved.slice(0, 3).mkString.toInt | |
| } | |
| println("sum: " + sum) | |
| //Output | |
| //========= | |
| //Grid 01 | |
| // | |
| //. . 3 | . 2 . | 6 . . | |
| //9 . . | 3 . 5 | . . 1 | |
| //. . 1 | 8 . 6 | 4 . . | |
| //------+-------+------ | |
| //. . 8 | 1 . 2 | 9 . . | |
| //7 . . | . . . | . . 8 | |
| //. . 6 | 7 . 8 | 2 . . | |
| //------+-------+------ | |
| //. . 2 | 6 . 9 | 5 . . | |
| //8 . . | 2 . 3 | . . 9 | |
| //. . 5 | . 1 . | 3 . . | |
| // | |
| //4 8 3 | 9 2 1 | 6 5 7 | |
| //9 6 7 | 3 4 5 | 8 2 1 | |
| //2 5 1 | 8 7 6 | 4 9 3 | |
| //------+-------+------ | |
| //5 4 8 | 1 3 2 | 9 7 6 | |
| //7 2 9 | 5 6 4 | 1 3 8 | |
| //1 3 6 | 7 9 8 | 2 4 5 | |
| //------+-------+------ | |
| //3 7 2 | 6 8 9 | 5 1 4 | |
| //8 1 4 | 2 5 3 | 7 6 9 | |
| //6 9 5 | 4 1 7 | 3 8 2 | |
| // | |
| // | |
| // | |
| //Grid 02 | |
| // | |
| //2 . . | . 8 . | 3 . . | |
| //. 6 . | . 7 . | . 8 4 | |
| //. 3 . | 5 . . | 2 . 9 | |
| //------+-------+------ | |
| //. . . | 1 . 5 | 4 . 8 | |
| //. . . | . . . | . . . | |
| //4 . 2 | 7 . 6 | . . . | |
| //------+-------+------ | |
| //3 . 1 | . . 7 | . 4 . | |
| //7 2 . | . 4 . | . 6 . | |
| //. . 4 | . 1 . | . . 3 | |
| // | |
| //2 4 5 | 9 8 1 | 3 7 6 | |
| //1 6 9 | 2 7 3 | 5 8 4 | |
| //8 3 7 | 5 6 4 | 2 1 9 | |
| //------+-------+------ | |
| //9 7 6 | 1 2 5 | 4 3 8 | |
| //5 1 3 | 4 9 8 | 6 2 7 | |
| //4 8 2 | 7 3 6 | 9 5 1 | |
| //------+-------+------ | |
| //3 9 1 | 6 5 7 | 8 4 2 | |
| //7 2 8 | 3 4 9 | 1 6 5 | |
| //6 5 4 | 8 1 2 | 7 9 3 | |
| // | |
| // | |
| // | |
| //Grid 03 | |
| // | |
| //. . . | . . . | 9 . 7 | |
| //. . . | 4 2 . | 1 8 . | |
| //. . . | 7 . 5 | . 2 6 | |
| //------+-------+------ | |
| //1 . . | 9 . 4 | . . . | |
| //. 5 . | . . . | . 4 . | |
| //. . . | 5 . 7 | . . 9 | |
| //------+-------+------ | |
| //9 2 . | 1 . 8 | . . . | |
| //. 3 4 | . 5 9 | . . . | |
| //5 . 7 | . . . | . . . | |
| // | |
| //4 6 2 | 8 3 1 | 9 5 7 | |
| //7 9 5 | 4 2 6 | 1 8 3 | |
| //3 8 1 | 7 9 5 | 4 2 6 | |
| //------+-------+------ | |
| //1 7 3 | 9 8 4 | 2 6 5 | |
| //6 5 9 | 3 1 2 | 7 4 8 | |
| //2 4 8 | 5 6 7 | 3 1 9 | |
| //------+-------+------ | |
| //9 2 6 | 1 7 8 | 5 3 4 | |
| //8 3 4 | 2 5 9 | 6 7 1 | |
| //5 1 7 | 6 4 3 | 8 9 2 | |
| // | |
| // | |
| // | |
| //Grid 04 | |
| // | |
| //. 3 . | . 5 . | . 4 . | |
| //. . 8 | . 1 . | 5 . . | |
| //4 6 . | . . . | . 1 2 | |
| //------+-------+------ | |
| //. 7 . | 5 . 2 | . 8 . | |
| //. . . | 6 . 3 | . . . | |
| //. 4 . | 1 . 9 | . 3 . | |
| //------+-------+------ | |
| //2 5 . | . . . | . 9 8 | |
| //. . 1 | . 2 . | 6 . . | |
| //. 8 . | . 6 . | . 2 . | |
| // | |
| //1 3 7 | 2 5 6 | 8 4 9 | |
| //9 2 8 | 3 1 4 | 5 6 7 | |
| //4 6 5 | 8 9 7 | 3 1 2 | |
| //------+-------+------ | |
| //6 7 3 | 5 4 2 | 9 8 1 | |
| //8 1 9 | 6 7 3 | 2 5 4 | |
| //5 4 2 | 1 8 9 | 7 3 6 | |
| //------+-------+------ | |
| //2 5 6 | 7 3 1 | 4 9 8 | |
| //3 9 1 | 4 2 8 | 6 7 5 | |
| //7 8 4 | 9 6 5 | 1 2 3 | |
| // | |
| // | |
| // | |
| //Grid 05 | |
| // | |
| //. 2 . | 8 1 . | 7 4 . | |
| //7 . . | . . 3 | 1 . . | |
| //. 9 . | . . 2 | 8 . 5 | |
| //------+-------+------ | |
| //. . 9 | . 4 . | . 8 7 | |
| //4 . . | 2 . 8 | . . 3 | |
| //1 6 . | . 3 . | 2 . . | |
| //------+-------+------ | |
| //3 . 2 | 7 . . | . 6 . | |
| //. . 5 | 6 . . | . . 8 | |
| //. 7 6 | . 5 1 | . 9 . | |
| // | |
| //5 2 3 | 8 1 6 | 7 4 9 | |
| //7 8 4 | 5 9 3 | 1 2 6 | |
| //6 9 1 | 4 7 2 | 8 3 5 | |
| //------+-------+------ | |
| //2 3 9 | 1 4 5 | 6 8 7 | |
| //4 5 7 | 2 6 8 | 9 1 3 | |
| //1 6 8 | 9 3 7 | 2 5 4 | |
| //------+-------+------ | |
| //3 4 2 | 7 8 9 | 5 6 1 | |
| //9 1 5 | 6 2 4 | 3 7 8 | |
| //8 7 6 | 3 5 1 | 4 9 2 | |
| // | |
| // | |
| // | |
| //Grid 06 | |
| // | |
| //1 . . | 9 2 . | . . . | |
| //5 2 4 | . 1 . | . . . | |
| //. . . | . . . | . 7 . | |
| //------+-------+------ | |
| //. 5 . | . . 8 | 1 . 2 | |
| //. . . | . . . | . . . | |
| //4 . 2 | 7 . . | . 9 . | |
| //------+-------+------ | |
| //. 6 . | . . . | . . . | |
| //. . . | . 3 . | 9 4 5 | |
| //. . . | . 7 1 | . . 6 | |
| // | |
| //1 7 6 | 9 2 3 | 5 8 4 | |
| //5 2 4 | 8 1 7 | 6 3 9 | |
| //8 9 3 | 6 5 4 | 2 7 1 | |
| //------+-------+------ | |
| //9 5 7 | 3 4 8 | 1 6 2 | |
| //6 3 8 | 1 9 2 | 4 5 7 | |
| //4 1 2 | 7 6 5 | 3 9 8 | |
| //------+-------+------ | |
| //2 6 5 | 4 8 9 | 7 1 3 | |
| //7 8 1 | 2 3 6 | 9 4 5 | |
| //3 4 9 | 5 7 1 | 8 2 6 | |
| // | |
| // | |
| // | |
| //Grid 07 | |
| // | |
| //. 4 3 | . 8 . | 2 5 . | |
| //6 . . | . . . | . . . | |
| //. . . | . . 1 | . 9 4 | |
| //------+-------+------ | |
| //9 . . | . . 4 | . 7 . | |
| //. . . | 6 . 8 | . . . | |
| //. 1 . | 2 . . | . . 3 | |
| //------+-------+------ | |
| //8 2 . | 5 . . | . . . | |
| //. . . | . . . | . . 5 | |
| //. 3 4 | . 9 . | 7 1 . | |
| // | |
| //1 4 3 | 9 8 6 | 2 5 7 | |
| //6 7 9 | 4 2 5 | 3 8 1 | |
| //2 8 5 | 7 3 1 | 6 9 4 | |
| //------+-------+------ | |
| //9 6 2 | 3 5 4 | 1 7 8 | |
| //3 5 7 | 6 1 8 | 9 4 2 | |
| //4 1 8 | 2 7 9 | 5 6 3 | |
| //------+-------+------ | |
| //8 2 1 | 5 6 7 | 4 3 9 | |
| //7 9 6 | 1 4 3 | 8 2 5 | |
| //5 3 4 | 8 9 2 | 7 1 6 | |
| // | |
| // | |
| // | |
| //Grid 08 | |
| // | |
| //4 8 . | . . 6 | 9 . 2 | |
| //. . 2 | . . 8 | . . 1 | |
| //9 . . | 3 7 . | . 6 . | |
| //------+-------+------ | |
| //8 4 . | . 1 . | 2 . . | |
| //. . 3 | 7 . 4 | 1 . . | |
| //. . 1 | . 6 . | . 4 9 | |
| //------+-------+------ | |
| //. 2 . | . 8 5 | . . 7 | |
| //7 . . | 9 . . | 6 . . | |
| //6 . 9 | 2 . . | . 1 8 | |
| // | |
| //4 8 7 | 1 5 6 | 9 3 2 | |
| //3 6 2 | 4 9 8 | 7 5 1 | |
| //9 1 5 | 3 7 2 | 8 6 4 | |
| //------+-------+------ | |
| //8 4 6 | 5 1 9 | 2 7 3 | |
| //5 9 3 | 7 2 4 | 1 8 6 | |
| //2 7 1 | 8 6 3 | 5 4 9 | |
| //------+-------+------ | |
| //1 2 4 | 6 8 5 | 3 9 7 | |
| //7 3 8 | 9 4 1 | 6 2 5 | |
| //6 5 9 | 2 3 7 | 4 1 8 | |
| // | |
| // | |
| // | |
| //Grid 09 | |
| // | |
| //. . . | 9 . . | . . 2 | |
| //. 5 . | 1 2 3 | 4 . . | |
| //. 3 . | . . . | 1 6 . | |
| //------+-------+------ | |
| //9 . 8 | . . . | . . . | |
| //. 7 . | . . . | . 9 . | |
| //. . . | . . . | 2 . 5 | |
| //------+-------+------ | |
| //. 9 1 | . . . | . 5 . | |
| //. . 7 | 4 3 9 | . 2 . | |
| //4 . . | . . 7 | . . . | |
| // | |
| //8 1 4 | 9 7 6 | 5 3 2 | |
| //6 5 9 | 1 2 3 | 4 7 8 | |
| //7 3 2 | 8 5 4 | 1 6 9 | |
| //------+-------+------ | |
| //9 4 8 | 2 6 5 | 3 1 7 | |
| //2 7 5 | 3 4 1 | 8 9 6 | |
| //1 6 3 | 7 9 8 | 2 4 5 | |
| //------+-------+------ | |
| //3 9 1 | 6 8 2 | 7 5 4 | |
| //5 8 7 | 4 3 9 | 6 2 1 | |
| //4 2 6 | 5 1 7 | 9 8 3 | |
| // | |
| // | |
| // | |
| //Grid 10 | |
| // | |
| //. . 1 | 9 . . | . . 3 | |
| //9 . . | 7 . . | 1 6 . | |
| //. 3 . | . . 5 | . . 7 | |
| //------+-------+------ | |
| //. 5 . | . . . | . . 9 | |
| //. . 4 | 3 . 2 | 6 . . | |
| //2 . . | . . . | . 7 . | |
| //------+-------+------ | |
| //6 . . | 1 . . | . 3 . | |
| //. 4 2 | . . 7 | . . 6 | |
| //5 . . | . . 6 | 8 . . | |
| // | |
| //7 6 1 | 9 2 8 | 4 5 3 | |
| //9 2 5 | 7 4 3 | 1 6 8 | |
| //4 3 8 | 6 1 5 | 9 2 7 | |
| //------+-------+------ | |
| //3 5 7 | 4 6 1 | 2 8 9 | |
| //8 9 4 | 3 7 2 | 6 1 5 | |
| //2 1 6 | 5 8 9 | 3 7 4 | |
| //------+-------+------ | |
| //6 8 9 | 1 5 4 | 7 3 2 | |
| //1 4 2 | 8 3 7 | 5 9 6 | |
| //5 7 3 | 2 9 6 | 8 4 1 | |
| // | |
| // | |
| // | |
| //Grid 11 | |
| // | |
| //. . . | 1 2 5 | 4 . . | |
| //. . 8 | 4 . . | . . . | |
| //4 2 . | 8 . . | . . . | |
| //------+-------+------ | |
| //. 3 . | . . . | . 9 5 | |
| //. 6 . | 9 . 2 | . 1 . | |
| //5 1 . | . . . | . 6 . | |
| //------+-------+------ | |
| //. . . | . . 3 | . 4 9 | |
| //. . . | . . 7 | 2 . . | |
| //. . 1 | 2 9 8 | . . . | |
| // | |
| //9 7 6 | 1 2 5 | 4 3 8 | |
| //1 5 8 | 4 3 6 | 9 2 7 | |
| //4 2 3 | 8 7 9 | 1 5 6 | |
| //------+-------+------ | |
| //2 3 4 | 7 6 1 | 8 9 5 | |
| //8 6 7 | 9 5 2 | 3 1 4 | |
| //5 1 9 | 3 8 4 | 7 6 2 | |
| //------+-------+------ | |
| //7 8 2 | 5 1 3 | 6 4 9 | |
| //3 9 5 | 6 4 7 | 2 8 1 | |
| //6 4 1 | 2 9 8 | 5 7 3 | |
| // | |
| // | |
| // | |
| //Grid 12 | |
| // | |
| //. 6 2 | 3 4 . | 7 5 . | |
| //1 . . | . . 5 | 6 . . | |
| //5 7 . | . . . | . 4 . | |
| //------+-------+------ | |
| //. . . | . 9 4 | 8 . . | |
| //4 . . | . . . | . . 6 | |
| //. . 5 | 8 3 . | . . . | |
| //------+-------+------ | |
| //. 3 . | . . . | . 9 1 | |
| //. . 6 | 4 . . | . . 7 | |
| //. 5 9 | . 8 3 | 2 6 . | |
| // | |
| //9 6 2 | 3 4 1 | 7 5 8 | |
| //1 4 8 | 9 7 5 | 6 2 3 | |
| //5 7 3 | 2 6 8 | 1 4 9 | |
| //------+-------+------ | |
| //3 2 1 | 6 9 4 | 8 7 5 | |
| //4 8 7 | 5 1 2 | 9 3 6 | |
| //6 9 5 | 8 3 7 | 4 1 2 | |
| //------+-------+------ | |
| //8 3 4 | 7 2 6 | 5 9 1 | |
| //2 1 6 | 4 5 9 | 3 8 7 | |
| //7 5 9 | 1 8 3 | 2 6 4 | |
| // | |
| // | |
| // | |
| //Grid 13 | |
| // | |
| //3 . . | . . . | . . . | |
| //. . 5 | . . 9 | . . . | |
| //2 . . | 5 . 4 | . . . | |
| //------+-------+------ | |
| //. 2 . | . . . | 7 . . | |
| //1 6 . | . . . | . 5 8 | |
| //7 . 4 | 3 1 . | 6 . . | |
| //------+-------+------ | |
| //. . . | 8 9 . | 1 . . | |
| //. . . | . 6 7 | . 8 . | |
| //. . . | . . 5 | 4 3 7 | |
| // | |
| //3 9 7 | 6 8 1 | 5 2 4 | |
| //6 4 5 | 2 7 9 | 8 1 3 | |
| //2 1 8 | 5 3 4 | 9 7 6 | |
| //------+-------+------ | |
| //8 2 3 | 9 5 6 | 7 4 1 | |
| //1 6 9 | 7 4 2 | 3 5 8 | |
| //7 5 4 | 3 1 8 | 6 9 2 | |
| //------+-------+------ | |
| //4 7 2 | 8 9 3 | 1 6 5 | |
| //5 3 1 | 4 6 7 | 2 8 9 | |
| //9 8 6 | 1 2 5 | 4 3 7 | |
| // | |
| // | |
| // | |
| //Grid 14 | |
| // | |
| //6 3 . | . . . | . . . | |
| //. . . | 5 . . | . . 8 | |
| //. . 5 | 6 7 4 | . . . | |
| //------+-------+------ | |
| //. . . | . 2 . | . . . | |
| //. . 3 | 4 . 1 | . 2 . | |
| //. . . | . . . | 3 4 5 | |
| //------+-------+------ | |
| //. . . | . . 7 | . . 4 | |
| //. 8 . | 3 . . | 9 . 2 | |
| //9 4 7 | 1 . . | . 8 . | |
| // | |
| //6 3 9 | 2 1 8 | 4 5 7 | |
| //4 7 1 | 5 3 9 | 2 6 8 | |
| //8 2 5 | 6 7 4 | 1 3 9 | |
| //------+-------+------ | |
| //5 6 4 | 8 2 3 | 7 9 1 | |
| //7 9 3 | 4 5 1 | 8 2 6 | |
| //2 1 8 | 7 9 6 | 3 4 5 | |
| //------+-------+------ | |
| //3 5 2 | 9 8 7 | 6 1 4 | |
| //1 8 6 | 3 4 5 | 9 7 2 | |
| //9 4 7 | 1 6 2 | 5 8 3 | |
| // | |
| // | |
| // | |
| //Grid 15 | |
| // | |
| //. . . | . 2 . | . 4 . | |
| //. . 8 | . 3 5 | . . . | |
| //. . . | . 7 . | 6 . 2 | |
| //------+-------+------ | |
| //. 3 1 | . 4 6 | 9 7 . | |
| //2 . . | . . . | . . . | |
| //. . . | 5 . 1 | 2 . 3 | |
| //------+-------+------ | |
| //. 4 9 | . . . | 7 3 . | |
| //. . . | . . . | . 1 . | |
| //8 . . | . . 4 | . . . | |
| // | |
| //6 9 7 | 1 2 8 | 3 4 5 | |
| //4 2 8 | 6 3 5 | 1 9 7 | |
| //3 1 5 | 4 7 9 | 6 8 2 | |
| //------+-------+------ | |
| //5 3 1 | 2 4 6 | 9 7 8 | |
| //2 8 6 | 3 9 7 | 4 5 1 | |
| //9 7 4 | 5 8 1 | 2 6 3 | |
| //------+-------+------ | |
| //1 4 9 | 8 5 2 | 7 3 6 | |
| //7 5 2 | 9 6 3 | 8 1 4 | |
| //8 6 3 | 7 1 4 | 5 2 9 | |
| // | |
| // | |
| // | |
| //Grid 16 | |
| // | |
| //3 6 1 | . 2 5 | 9 . . | |
| //. 8 . | 9 6 . | . 1 . | |
| //4 . . | . . . | . 5 7 | |
| //------+-------+------ | |
| //. . 8 | . . . | 4 7 1 | |
| //. . . | 6 . 3 | . . . | |
| //2 5 9 | . . . | 8 . . | |
| //------+-------+------ | |
| //7 4 . | . . . | . . 5 | |
| //. 2 . | . 1 8 | . 6 . | |
| //. . 5 | 4 7 . | 3 2 9 | |
| // | |
| //3 6 1 | 7 2 5 | 9 4 8 | |
| //5 8 7 | 9 6 4 | 2 1 3 | |
| //4 9 2 | 8 3 1 | 6 5 7 | |
| //------+-------+------ | |
| //6 3 8 | 2 5 9 | 4 7 1 | |
| //1 7 4 | 6 8 3 | 5 9 2 | |
| //2 5 9 | 1 4 7 | 8 3 6 | |
| //------+-------+------ | |
| //7 4 6 | 3 9 2 | 1 8 5 | |
| //9 2 3 | 5 1 8 | 7 6 4 | |
| //8 1 5 | 4 7 6 | 3 2 9 | |
| // | |
| // | |
| // | |
| //Grid 17 | |
| // | |
| //. 5 . | 8 . 7 | . 2 . | |
| //6 . . | . 1 . | . 9 . | |
| //7 . 2 | 5 4 . | . . 6 | |
| //------+-------+------ | |
| //. 7 . | . 2 . | 3 . 1 | |
| //5 . 4 | . . . | 9 . 8 | |
| //1 . 3 | . 8 . | . 7 . | |
| //------+-------+------ | |
| //9 . . | . 7 6 | 2 . 5 | |
| //. 6 . | . 9 . | . . 3 | |
| //. 8 . | 1 . 3 | . 4 . | |
| // | |
| //3 5 9 | 8 6 7 | 1 2 4 | |
| //6 4 8 | 3 1 2 | 5 9 7 | |
| //7 1 2 | 5 4 9 | 8 3 6 | |
| //------+-------+------ | |
| //8 7 6 | 9 2 4 | 3 5 1 | |
| //5 2 4 | 7 3 1 | 9 6 8 | |
| //1 9 3 | 6 8 5 | 4 7 2 | |
| //------+-------+------ | |
| //9 3 1 | 4 7 6 | 2 8 5 | |
| //4 6 5 | 2 9 8 | 7 1 3 | |
| //2 8 7 | 1 5 3 | 6 4 9 | |
| // | |
| // | |
| // | |
| //Grid 18 | |
| // | |
| //. 8 . | . . 5 | . . . | |
| //. . . | . . 3 | 4 5 7 | |
| //. . . | . 7 . | 8 . 9 | |
| //------+-------+------ | |
| //. 6 . | 4 . . | 9 . 3 | |
| //. . 7 | . 1 . | 5 . . | |
| //4 . 8 | . . 7 | . 2 . | |
| //------+-------+------ | |
| //9 . 1 | . 2 . | . . . | |
| //8 4 2 | 3 . . | . . . | |
| //. . . | 1 . . | . 8 . | |
| // | |
| //7 8 6 | 9 4 5 | 3 1 2 | |
| //2 1 9 | 8 6 3 | 4 5 7 | |
| //5 3 4 | 2 7 1 | 8 6 9 | |
| //------+-------+------ | |
| //1 6 5 | 4 8 2 | 9 7 3 | |
| //3 2 7 | 6 1 9 | 5 4 8 | |
| //4 9 8 | 5 3 7 | 1 2 6 | |
| //------+-------+------ | |
| //9 5 1 | 7 2 8 | 6 3 4 | |
| //8 4 2 | 3 5 6 | 7 9 1 | |
| //6 7 3 | 1 9 4 | 2 8 5 | |
| // | |
| // | |
| // | |
| //Grid 19 | |
| // | |
| //. . 3 | 5 . 2 | 9 . . | |
| //. . . | . 4 . | . . . | |
| //1 . 6 | . . . | 3 . 5 | |
| //------+-------+------ | |
| //9 . . | 2 5 1 | . . 8 | |
| //. 7 . | 4 . 8 | . 3 . | |
| //8 . . | 7 6 3 | . . 1 | |
| //------+-------+------ | |
| //3 . 8 | . . . | 1 . 4 | |
| //. . . | . 2 . | . . . | |
| //. . 5 | 1 . 4 | 8 . . | |
| // | |
| //7 4 3 | 5 1 2 | 9 8 6 | |
| //5 8 9 | 3 4 6 | 2 1 7 | |
| //1 2 6 | 9 8 7 | 3 4 5 | |
| //------+-------+------ | |
| //9 3 4 | 2 5 1 | 7 6 8 | |
| //6 7 1 | 4 9 8 | 5 3 2 | |
| //8 5 2 | 7 6 3 | 4 9 1 | |
| //------+-------+------ | |
| //3 9 8 | 6 7 5 | 1 2 4 | |
| //4 1 7 | 8 2 9 | 6 5 3 | |
| //2 6 5 | 1 3 4 | 8 7 9 | |
| // | |
| // | |
| // | |
| //Grid 20 | |
| // | |
| //. . . | . . . | . . . | |
| //. . 9 | 8 . 5 | 1 . . | |
| //. 5 1 | 9 . 7 | 4 2 . | |
| //------+-------+------ | |
| //2 9 . | 4 . 1 | . 6 5 | |
| //. . . | . . . | . . . | |
| //1 4 . | 5 . 8 | . 9 3 | |
| //------+-------+------ | |
| //. 2 6 | 7 . 9 | 5 8 . | |
| //. . 5 | 1 . 3 | 6 . . | |
| //. . . | . . . | . . . | |
| // | |
| //7 8 2 | 6 1 4 | 3 5 9 | |
| //4 3 9 | 8 2 5 | 1 7 6 | |
| //6 5 1 | 9 3 7 | 4 2 8 | |
| //------+-------+------ | |
| //2 9 3 | 4 7 1 | 8 6 5 | |
| //5 6 8 | 3 9 2 | 7 1 4 | |
| //1 4 7 | 5 6 8 | 2 9 3 | |
| //------+-------+------ | |
| //3 2 6 | 7 4 9 | 5 8 1 | |
| //9 7 5 | 1 8 3 | 6 4 2 | |
| //8 1 4 | 2 5 6 | 9 3 7 | |
| // | |
| // | |
| // | |
| //Grid 21 | |
| // | |
| //. 2 . | . 3 . | . 9 . | |
| //. . . | 9 . 7 | . . . | |
| //9 . . | 2 . 8 | . . 5 | |
| //------+-------+------ | |
| //. . 4 | 8 . 6 | 5 . . | |
| //6 . 7 | . . . | 2 . 8 | |
| //. . 3 | 1 . 2 | 9 . . | |
| //------+-------+------ | |
| //8 . . | 6 . 5 | . . 7 | |
| //. . . | 3 . 9 | . . . | |
| //. 3 . | . 2 . | . 5 . | |
| // | |
| //4 2 8 | 5 3 1 | 7 9 6 | |
| //3 6 5 | 9 4 7 | 1 8 2 | |
| //9 7 1 | 2 6 8 | 4 3 5 | |
| //------+-------+------ | |
| //2 1 4 | 8 9 6 | 5 7 3 | |
| //6 9 7 | 4 5 3 | 2 1 8 | |
| //5 8 3 | 1 7 2 | 9 6 4 | |
| //------+-------+------ | |
| //8 4 9 | 6 1 5 | 3 2 7 | |
| //7 5 2 | 3 8 9 | 6 4 1 | |
| //1 3 6 | 7 2 4 | 8 5 9 | |
| // | |
| // | |
| // | |
| //Grid 22 | |
| // | |
| //. . 5 | . . . | . . 6 | |
| //. 7 . | . . 9 | . 2 . | |
| //. . . | 5 . . | 1 . 7 | |
| //------+-------+------ | |
| //8 . 4 | 1 5 . | . . . | |
| //. . . | 8 . 3 | . . . | |
| //. . . | . 9 2 | 8 . 5 | |
| //------+-------+------ | |
| //9 . 7 | . . 6 | . . . | |
| //. 3 . | 4 . . | . 1 . | |
| //2 . . | . . . | 6 . . | |
| // | |
| //4 2 5 | 7 8 1 | 9 3 6 | |
| //1 7 8 | 3 6 9 | 5 2 4 | |
| //3 6 9 | 5 2 4 | 1 8 7 | |
| //------+-------+------ | |
| //8 9 4 | 1 5 7 | 3 6 2 | |
| //6 5 2 | 8 4 3 | 7 9 1 | |
| //7 1 3 | 6 9 2 | 8 4 5 | |
| //------+-------+------ | |
| //9 8 7 | 2 1 6 | 4 5 3 | |
| //5 3 6 | 4 7 8 | 2 1 9 | |
| //2 4 1 | 9 3 5 | 6 7 8 | |
| // | |
| // | |
| // | |
| //Grid 23 | |
| // | |
| //. 4 . | . . . | . 5 . | |
| //. . 1 | 9 4 3 | 6 . . | |
| //. . 9 | . . . | 3 . . | |
| //------+-------+------ | |
| //6 . . | . 5 . | . . 2 | |
| //1 . 3 | . . . | 5 . 6 | |
| //8 . . | . 2 . | . . 7 | |
| //------+-------+------ | |
| //. . 5 | . . . | 2 . . | |
| //. . 2 | 4 3 6 | 7 . . | |
| //. 3 . | . . . | . 4 . | |
| // | |
| //3 4 8 | 2 6 7 | 9 5 1 | |
| //5 7 1 | 9 4 3 | 6 2 8 | |
| //2 6 9 | 1 8 5 | 3 7 4 | |
| //------+-------+------ | |
| //6 9 7 | 3 5 1 | 4 8 2 | |
| //1 2 3 | 8 7 4 | 5 9 6 | |
| //8 5 4 | 6 2 9 | 1 3 7 | |
| //------+-------+------ | |
| //4 1 5 | 7 9 8 | 2 6 3 | |
| //9 8 2 | 4 3 6 | 7 1 5 | |
| //7 3 6 | 5 1 2 | 8 4 9 | |
| // | |
| // | |
| // | |
| //Grid 24 | |
| // | |
| //. . 4 | . . . | . . . | |
| //. . . | . 3 . | . . 2 | |
| //3 9 . | 7 . . | . 8 . | |
| //------+-------+------ | |
| //4 . . | . . 9 | . . 1 | |
| //2 . 9 | 8 . 1 | 3 . 7 | |
| //6 . . | 2 . . | . . 8 | |
| //------+-------+------ | |
| //. 1 . | . . 8 | . 5 3 | |
| //9 . . | . 4 . | . . . | |
| //. . . | . . . | 8 . . | |
| // | |
| //1 2 4 | 9 8 6 | 7 3 5 | |
| //8 6 7 | 4 3 5 | 9 1 2 | |
| //3 9 5 | 7 1 2 | 6 8 4 | |
| //------+-------+------ | |
| //4 7 8 | 3 5 9 | 2 6 1 | |
| //2 5 9 | 8 6 1 | 3 4 7 | |
| //6 3 1 | 2 7 4 | 5 9 8 | |
| //------+-------+------ | |
| //7 1 2 | 6 9 8 | 4 5 3 | |
| //9 8 3 | 5 4 7 | 1 2 6 | |
| //5 4 6 | 1 2 3 | 8 7 9 | |
| // | |
| // | |
| // | |
| //Grid 25 | |
| // | |
| //3 6 . | . 2 . | . 8 9 | |
| //. . . | 3 6 1 | . . . | |
| //. . . | . . . | . . . | |
| //------+-------+------ | |
| //8 . 3 | . . . | 6 . 2 | |
| //4 . . | 6 . 3 | . . 7 | |
| //6 . 7 | . . . | 1 . 8 | |
| //------+-------+------ | |
| //. . . | . . . | . . . | |
| //. . . | 4 1 8 | . . . | |
| //9 7 . | . 3 . | . 1 4 | |
| // | |
| //3 6 1 | 5 2 4 | 7 8 9 | |
| //7 8 9 | 3 6 1 | 4 2 5 | |
| //5 2 4 | 8 7 9 | 3 6 1 | |
| //------+-------+------ | |
| //8 9 3 | 1 5 7 | 6 4 2 | |
| //4 1 2 | 6 8 3 | 5 9 7 | |
| //6 5 7 | 9 4 2 | 1 3 8 | |
| //------+-------+------ | |
| //1 4 8 | 7 9 6 | 2 5 3 | |
| //2 3 5 | 4 1 8 | 9 7 6 | |
| //9 7 6 | 2 3 5 | 8 1 4 | |
| // | |
| // | |
| // | |
| //Grid 26 | |
| // | |
| //5 . . | 4 . . | . 6 . | |
| //. . 9 | . . . | 8 . . | |
| //6 4 . | . 2 . | . . . | |
| //------+-------+------ | |
| //. . . | . . 1 | . . 8 | |
| //2 . 8 | . . . | 5 . 1 | |
| //7 . . | 5 . . | . . . | |
| //------+-------+------ | |
| //. . . | . 9 . | . 8 4 | |
| //. . 3 | . . . | 6 . . | |
| //. 6 . | . . 3 | . . 2 | |
| // | |
| //5 8 1 | 4 7 9 | 2 6 3 | |
| //3 2 9 | 1 5 6 | 8 4 7 | |
| //6 4 7 | 3 2 8 | 1 5 9 | |
| //------+-------+------ | |
| //9 5 6 | 7 3 1 | 4 2 8 | |
| //2 3 8 | 9 6 4 | 5 7 1 | |
| //7 1 4 | 5 8 2 | 9 3 6 | |
| //------+-------+------ | |
| //1 7 2 | 6 9 5 | 3 8 4 | |
| //8 9 3 | 2 4 7 | 6 1 5 | |
| //4 6 5 | 8 1 3 | 7 9 2 | |
| // | |
| // | |
| // | |
| //Grid 27 | |
| // | |
| //. . 7 | 2 5 6 | 4 . . | |
| //4 . . | . . . | . . 5 | |
| //. 1 . | . 3 . | . 6 . | |
| //------+-------+------ | |
| //. . . | 5 . 8 | . . . | |
| //. . 8 | . 6 . | 2 . . | |
| //. . . | 1 . 7 | . . . | |
| //------+-------+------ | |
| //. 3 . | . 7 . | . 9 . | |
| //2 . . | . . . | . . 4 | |
| //. . 6 | 3 1 2 | 7 . . | |
| // | |
| //3 8 7 | 2 5 6 | 4 1 9 | |
| //4 6 9 | 7 8 1 | 3 2 5 | |
| //5 1 2 | 4 3 9 | 8 6 7 | |
| //------+-------+------ | |
| //1 2 3 | 5 4 8 | 9 7 6 | |
| //7 5 8 | 9 6 3 | 2 4 1 | |
| //6 9 4 | 1 2 7 | 5 8 3 | |
| //------+-------+------ | |
| //8 3 5 | 6 7 4 | 1 9 2 | |
| //2 7 1 | 8 9 5 | 6 3 4 | |
| //9 4 6 | 3 1 2 | 7 5 8 | |
| // | |
| // | |
| // | |
| //Grid 28 | |
| // | |
| //. . . | . . . | . . . | |
| //. 7 9 | . 5 . | 1 8 . | |
| //8 . . | . . . | . . 7 | |
| //------+-------+------ | |
| //. . 7 | 3 . 6 | 8 . . | |
| //4 5 . | 7 . 8 | . 9 6 | |
| //. . 3 | 5 . 2 | 7 . . | |
| //------+-------+------ | |
| //7 . . | . . . | . . 5 | |
| //. 1 6 | . 3 . | 4 2 . | |
| //. . . | . . . | . . . | |
| // | |
| //3 4 5 | 8 7 1 | 2 6 9 | |
| //2 7 9 | 6 5 3 | 1 8 4 | |
| //8 6 1 | 4 2 9 | 5 3 7 | |
| //------+-------+------ | |
| //1 9 7 | 3 4 6 | 8 5 2 | |
| //4 5 2 | 7 1 8 | 3 9 6 | |
| //6 8 3 | 5 9 2 | 7 4 1 | |
| //------+-------+------ | |
| //7 3 8 | 2 6 4 | 9 1 5 | |
| //5 1 6 | 9 3 7 | 4 2 8 | |
| //9 2 4 | 1 8 5 | 6 7 3 | |
| // | |
| // | |
| // | |
| //Grid 29 | |
| // | |
| //. 3 . | . . . | . 8 . | |
| //. . 9 | . . . | 5 . . | |
| //. . 7 | 5 . 9 | 2 . . | |
| //------+-------+------ | |
| //7 . . | 1 . 5 | . . 8 | |
| //. 2 . | . 9 . | . 3 . | |
| //9 . . | 4 . 2 | . . 1 | |
| //------+-------+------ | |
| //. . 4 | 2 . 7 | 1 . . | |
| //. . 2 | . . . | 8 . . | |
| //. 7 . | . . . | . 9 . | |
| // | |
| //2 3 5 | 7 6 1 | 4 8 9 | |
| //4 1 9 | 3 2 8 | 5 7 6 | |
| //8 6 7 | 5 4 9 | 2 1 3 | |
| //------+-------+------ | |
| //7 4 6 | 1 3 5 | 9 2 8 | |
| //5 2 1 | 8 9 6 | 7 3 4 | |
| //9 8 3 | 4 7 2 | 6 5 1 | |
| //------+-------+------ | |
| //3 9 4 | 2 8 7 | 1 6 5 | |
| //6 5 2 | 9 1 3 | 8 4 7 | |
| //1 7 8 | 6 5 4 | 3 9 2 | |
| // | |
| // | |
| // | |
| //Grid 30 | |
| // | |
| //2 . . | 1 7 . | 6 . 3 | |
| //. 5 . | . . . | 1 . . | |
| //. . . | . . 6 | . 7 9 | |
| //------+-------+------ | |
| //. . . | . 4 . | 7 . . | |
| //. . . | 8 . 1 | . . . | |
| //. . 9 | . 5 . | . . . | |
| //------+-------+------ | |
| //3 1 . | 4 . . | . . . | |
| //. . 5 | . . . | . 6 . | |
| //9 . 6 | . 3 7 | . . 2 | |
| // | |
| //2 9 8 | 1 7 5 | 6 4 3 | |
| //6 5 7 | 3 9 4 | 1 2 8 | |
| //1 3 4 | 2 8 6 | 5 7 9 | |
| //------+-------+------ | |
| //8 2 1 | 6 4 9 | 7 3 5 | |
| //5 7 3 | 8 2 1 | 4 9 6 | |
| //4 6 9 | 7 5 3 | 2 8 1 | |
| //------+-------+------ | |
| //3 1 2 | 4 6 8 | 9 5 7 | |
| //7 8 5 | 9 1 2 | 3 6 4 | |
| //9 4 6 | 5 3 7 | 8 1 2 | |
| // | |
| // | |
| // | |
| //Grid 31 | |
| // | |
| //. . . | . . . | . 8 . | |
| //8 . . | 7 . 1 | . 4 . | |
| //. 4 . | . 2 . | . 3 . | |
| //------+-------+------ | |
| //3 7 4 | . . . | 9 . . | |
| //. . . | . 3 . | . . . | |
| //. . 5 | . . . | 3 2 1 | |
| //------+-------+------ | |
| //. 1 . | . 6 . | . 5 . | |
| //. 5 . | 8 . 2 | . . 6 | |
| //. 8 . | . . . | . . . | |
| // | |
| //7 6 1 | 5 4 3 | 2 8 9 | |
| //8 3 2 | 7 9 1 | 6 4 5 | |
| //5 4 9 | 6 2 8 | 1 3 7 | |
| //------+-------+------ | |
| //3 7 4 | 2 1 5 | 9 6 8 | |
| //1 2 8 | 9 3 6 | 5 7 4 | |
| //6 9 5 | 4 8 7 | 3 2 1 | |
| //------+-------+------ | |
| //4 1 7 | 3 6 9 | 8 5 2 | |
| //9 5 3 | 8 7 2 | 4 1 6 | |
| //2 8 6 | 1 5 4 | 7 9 3 | |
| // | |
| // | |
| // | |
| //Grid 32 | |
| // | |
| //. . . | . . . | . 8 5 | |
| //. . . | 2 1 . | . . 9 | |
| //9 6 . | . 8 . | 1 . . | |
| //------+-------+------ | |
| //5 . . | 8 . . | . 1 6 | |
| //. . . | . . . | . . . | |
| //8 9 . | . . 6 | . . 7 | |
| //------+-------+------ | |
| //. . 9 | . 7 . | . 5 2 | |
| //3 . . | . 5 4 | . . . | |
| //4 8 . | . . . | . . . | |
| // | |
| //1 3 2 | 6 4 9 | 7 8 5 | |
| //7 5 8 | 2 1 3 | 6 4 9 | |
| //9 6 4 | 7 8 5 | 1 2 3 | |
| //------+-------+------ | |
| //5 4 3 | 8 9 7 | 2 1 6 | |
| //2 7 6 | 5 3 1 | 8 9 4 | |
| //8 9 1 | 4 2 6 | 5 3 7 | |
| //------+-------+------ | |
| //6 1 9 | 3 7 8 | 4 5 2 | |
| //3 2 7 | 1 5 4 | 9 6 8 | |
| //4 8 5 | 9 6 2 | 3 7 1 | |
| // | |
| // | |
| // | |
| //Grid 33 | |
| // | |
| //6 . 8 | . 7 . | 5 . 2 | |
| //. 5 . | 6 . 8 | . 7 . | |
| //. . 2 | . . . | 3 . . | |
| //------+-------+------ | |
| //5 . . | . 9 . | . . 6 | |
| //. 4 . | 3 . 2 | . 5 . | |
| //8 . . | . 5 . | . . 3 | |
| //------+-------+------ | |
| //. . 5 | . . . | 2 . . | |
| //. 1 . | 7 . 4 | . 9 . | |
| //4 . 9 | . 6 . | 7 . 1 | |
| // | |
| //6 9 8 | 1 7 3 | 5 4 2 | |
| //3 5 4 | 6 2 8 | 1 7 9 | |
| //1 7 2 | 5 4 9 | 3 6 8 | |
| //------+-------+------ | |
| //5 3 1 | 8 9 7 | 4 2 6 | |
| //9 4 6 | 3 1 2 | 8 5 7 | |
| //8 2 7 | 4 5 6 | 9 1 3 | |
| //------+-------+------ | |
| //7 6 5 | 9 3 1 | 2 8 4 | |
| //2 1 3 | 7 8 4 | 6 9 5 | |
| //4 8 9 | 2 6 5 | 7 3 1 | |
| // | |
| // | |
| // | |
| //Grid 34 | |
| // | |
| //. 5 . | . 1 . | . 4 . | |
| //1 . 7 | . . . | 6 . 2 | |
| //. . . | 9 . 5 | . . . | |
| //------+-------+------ | |
| //2 . 8 | . 3 . | 5 . 1 | |
| //. 4 . | . 7 . | . 2 . | |
| //9 . 1 | . 8 . | 4 . 6 | |
| //------+-------+------ | |
| //. . . | 4 . 1 | . . . | |
| //3 . 4 | . . . | 7 . 9 | |
| //. 2 . | . 6 . | . 1 . | |
| // | |
| //8 5 2 | 7 1 6 | 9 4 3 | |
| //1 9 7 | 8 4 3 | 6 5 2 | |
| //4 6 3 | 9 2 5 | 1 8 7 | |
| //------+-------+------ | |
| //2 7 8 | 6 3 4 | 5 9 1 | |
| //6 4 5 | 1 7 9 | 3 2 8 | |
| //9 3 1 | 5 8 2 | 4 7 6 | |
| //------+-------+------ | |
| //7 8 6 | 4 9 1 | 2 3 5 | |
| //3 1 4 | 2 5 8 | 7 6 9 | |
| //5 2 9 | 3 6 7 | 8 1 4 | |
| // | |
| // | |
| // | |
| //Grid 35 | |
| // | |
| //. 5 3 | . . . | 7 9 . | |
| //. . 9 | 7 5 3 | 4 . . | |
| //1 . . | . . . | . . 2 | |
| //------+-------+------ | |
| //. 9 . | . 8 . | . 1 . | |
| //. . . | 9 . 7 | . . . | |
| //. 8 . | . 3 . | . 7 . | |
| //------+-------+------ | |
| //5 . . | . . . | . . 3 | |
| //. . 7 | 6 4 1 | 2 . . | |
| //. 6 1 | . . . | 9 4 . | |
| // | |
| //4 5 3 | 2 1 8 | 7 9 6 | |
| //6 2 9 | 7 5 3 | 4 8 1 | |
| //1 7 8 | 4 9 6 | 5 3 2 | |
| //------+-------+------ | |
| //7 9 6 | 5 8 2 | 3 1 4 | |
| //3 1 4 | 9 6 7 | 8 2 5 | |
| //2 8 5 | 1 3 4 | 6 7 9 | |
| //------+-------+------ | |
| //5 4 2 | 8 7 9 | 1 6 3 | |
| //9 3 7 | 6 4 1 | 2 5 8 | |
| //8 6 1 | 3 2 5 | 9 4 7 | |
| // | |
| // | |
| // | |
| //Grid 36 | |
| // | |
| //. . 6 | . 8 . | 3 . . | |
| //. 4 9 | . 7 . | 2 5 . | |
| //. . . | 4 . 5 | . . . | |
| //------+-------+------ | |
| //6 . . | 3 1 7 | . . 4 | |
| //. . 7 | . . . | 8 . . | |
| //1 . . | 8 2 6 | . . 9 | |
| //------+-------+------ | |
| //. . . | 7 . 2 | . . . | |
| //. 7 5 | . 4 . | 1 9 . | |
| //. . 3 | . 9 . | 6 . . | |
| // | |
| //5 1 6 | 2 8 9 | 3 4 7 | |
| //8 4 9 | 1 7 3 | 2 5 6 | |
| //7 3 2 | 4 6 5 | 9 1 8 | |
| //------+-------+------ | |
| //6 9 8 | 3 1 7 | 5 2 4 | |
| //3 2 7 | 9 5 4 | 8 6 1 | |
| //1 5 4 | 8 2 6 | 7 3 9 | |
| //------+-------+------ | |
| //9 6 1 | 7 3 2 | 4 8 5 | |
| //2 7 5 | 6 4 8 | 1 9 3 | |
| //4 8 3 | 5 9 1 | 6 7 2 | |
| // | |
| // | |
| // | |
| //Grid 37 | |
| // | |
| //. . 5 | . 8 . | 7 . . | |
| //7 . . | 2 . 4 | . . 5 | |
| //3 2 . | . . . | . 8 4 | |
| //------+-------+------ | |
| //. 6 . | 1 . 5 | . 4 . | |
| //. . 8 | . . . | 5 . . | |
| //. 7 . | 8 . 3 | . 1 . | |
| //------+-------+------ | |
| //4 5 . | . . . | . 9 1 | |
| //6 . . | 5 . 8 | . . 7 | |
| //. . 3 | . 1 . | 6 . . | |
| // | |
| //9 4 5 | 6 8 1 | 7 2 3 | |
| //7 8 1 | 2 3 4 | 9 6 5 | |
| //3 2 6 | 7 5 9 | 1 8 4 | |
| //------+-------+------ | |
| //2 6 9 | 1 7 5 | 3 4 8 | |
| //1 3 8 | 9 4 2 | 5 7 6 | |
| //5 7 4 | 8 6 3 | 2 1 9 | |
| //------+-------+------ | |
| //4 5 7 | 3 2 6 | 8 9 1 | |
| //6 1 2 | 5 9 8 | 4 3 7 | |
| //8 9 3 | 4 1 7 | 6 5 2 | |
| // | |
| // | |
| // | |
| //Grid 38 | |
| // | |
| //. . . | 9 . . | 8 . . | |
| //1 2 8 | . . 6 | 4 . . | |
| //. 7 . | 8 . . | . 6 . | |
| //------+-------+------ | |
| //8 . . | 4 3 . | . . 7 | |
| //5 . . | . . . | . . 9 | |
| //6 . . | . 7 9 | . . 8 | |
| //------+-------+------ | |
| //. 9 . | . . 4 | . 1 . | |
| //. . 3 | 6 . . | 2 8 4 | |
| //. . 1 | . . 7 | . . . | |
| // | |
| //3 6 5 | 9 4 2 | 8 7 1 | |
| //1 2 8 | 7 5 6 | 4 9 3 | |
| //9 7 4 | 8 1 3 | 5 6 2 | |
| //------+-------+------ | |
| //8 1 9 | 4 3 5 | 6 2 7 | |
| //5 3 7 | 2 6 8 | 1 4 9 | |
| //6 4 2 | 1 7 9 | 3 5 8 | |
| //------+-------+------ | |
| //2 9 6 | 3 8 4 | 7 1 5 | |
| //7 5 3 | 6 9 1 | 2 8 4 | |
| //4 8 1 | 5 2 7 | 9 3 6 | |
| // | |
| // | |
| // | |
| //Grid 39 | |
| // | |
| //. . . | . 8 . | . . . | |
| //2 7 . | . . . | . 5 4 | |
| //. 9 5 | . . . | 8 1 . | |
| //------+-------+------ | |
| //. . 9 | 8 . 6 | 4 . . | |
| //. 2 . | 4 . 3 | . 6 . | |
| //. . 6 | 9 . 5 | 1 . . | |
| //------+-------+------ | |
| //. 1 7 | . . . | 6 2 . | |
| //4 6 . | . . . | . 3 8 | |
| //. . . | . 9 . | . . . | |
| // | |
| //1 3 4 | 5 8 7 | 2 9 6 | |
| //2 7 8 | 1 6 9 | 3 5 4 | |
| //6 9 5 | 2 3 4 | 8 1 7 | |
| //------+-------+------ | |
| //3 5 9 | 8 1 6 | 4 7 2 | |
| //8 2 1 | 4 7 3 | 5 6 9 | |
| //7 4 6 | 9 2 5 | 1 8 3 | |
| //------+-------+------ | |
| //9 1 7 | 3 4 8 | 6 2 5 | |
| //4 6 2 | 7 5 1 | 9 3 8 | |
| //5 8 3 | 6 9 2 | 7 4 1 | |
| // | |
| // | |
| // | |
| //Grid 40 | |
| // | |
| //. . . | 6 . 2 | . . . | |
| //4 . . | . 5 . | . . 1 | |
| //. 8 5 | . 1 . | 6 2 . | |
| //------+-------+------ | |
| //. 3 8 | 2 . 6 | 7 1 . | |
| //. . . | . . . | . . . | |
| //. 1 9 | 4 . 7 | 3 5 . | |
| //------+-------+------ | |
| //. 2 6 | . 4 . | 5 3 . | |
| //9 . . | . 2 . | . . 7 | |
| //. . . | 8 . 9 | . . . | |
| // | |
| //1 9 3 | 6 7 2 | 4 8 5 | |
| //4 6 2 | 3 5 8 | 9 7 1 | |
| //7 8 5 | 9 1 4 | 6 2 3 | |
| //------+-------+------ | |
| //5 3 8 | 2 9 6 | 7 1 4 | |
| //6 7 4 | 1 3 5 | 2 9 8 | |
| //2 1 9 | 4 8 7 | 3 5 6 | |
| //------+-------+------ | |
| //8 2 6 | 7 4 1 | 5 3 9 | |
| //9 4 1 | 5 2 3 | 8 6 7 | |
| //3 5 7 | 8 6 9 | 1 4 2 | |
| // | |
| // | |
| // | |
| //Grid 41 | |
| // | |
| //. . . | 9 . . | . . 2 | |
| //. 5 . | 1 2 3 | 4 . . | |
| //. 3 . | . . . | 1 6 . | |
| //------+-------+------ | |
| //9 . 8 | . . . | . . . | |
| //. 7 . | . . . | . 9 . | |
| //. . . | . . . | 2 . 5 | |
| //------+-------+------ | |
| //. 9 1 | . . . | . 5 . | |
| //. . 7 | 4 3 9 | . 2 . | |
| //4 . . | . . 7 | . . . | |
| // | |
| //8 1 4 | 9 7 6 | 5 3 2 | |
| //6 5 9 | 1 2 3 | 4 7 8 | |
| //7 3 2 | 8 5 4 | 1 6 9 | |
| //------+-------+------ | |
| //9 4 8 | 2 6 5 | 3 1 7 | |
| //2 7 5 | 3 4 1 | 8 9 6 | |
| //1 6 3 | 7 9 8 | 2 4 5 | |
| //------+-------+------ | |
| //3 9 1 | 6 8 2 | 7 5 4 | |
| //5 8 7 | 4 3 9 | 6 2 1 | |
| //4 2 6 | 5 1 7 | 9 8 3 | |
| // | |
| // | |
| // | |
| //Grid 42 | |
| // | |
| //3 8 . | . . . | . . . | |
| //. . . | 4 . . | 7 8 5 | |
| //. . 9 | . 2 . | 3 . . | |
| //------+-------+------ | |
| //. 6 . | . 9 . | . . . | |
| //8 . . | 3 . 2 | . . 9 | |
| //. . . | . 4 . | . 7 . | |
| //------+-------+------ | |
| //. . 1 | . 7 . | 5 . . | |
| //4 9 5 | . . 6 | . . . | |
| //. . . | . . . | . 9 2 | |
| // | |
| //3 8 4 | 5 6 7 | 9 2 1 | |
| //1 2 6 | 4 3 9 | 7 8 5 | |
| //7 5 9 | 8 2 1 | 3 4 6 | |
| //------+-------+------ | |
| //5 6 3 | 7 9 8 | 2 1 4 | |
| //8 4 7 | 3 1 2 | 6 5 9 | |
| //9 1 2 | 6 4 5 | 8 7 3 | |
| //------+-------+------ | |
| //2 3 1 | 9 7 4 | 5 6 8 | |
| //4 9 5 | 2 8 6 | 1 3 7 | |
| //6 7 8 | 1 5 3 | 4 9 2 | |
| // | |
| // | |
| // | |
| //Grid 43 | |
| // | |
| //. . . | 1 5 8 | . . . | |
| //. . 2 | . 6 . | 8 . . | |
| //. 3 . | . . . | . 4 . | |
| //------+-------+------ | |
| //. 2 7 | . 3 . | 5 1 . | |
| //. . . | . . . | . . . | |
| //. 4 6 | . 8 . | 7 9 . | |
| //------+-------+------ | |
| //. 5 . | . . . | . 8 . | |
| //. . 4 | . 7 . | 1 . . | |
| //. . . | 3 2 5 | . . . | |
| // | |
| //4 6 9 | 1 5 8 | 3 7 2 | |
| //7 1 2 | 4 6 3 | 8 5 9 | |
| //5 3 8 | 2 9 7 | 6 4 1 | |
| //------+-------+------ | |
| //9 2 7 | 6 3 4 | 5 1 8 | |
| //3 8 5 | 7 1 9 | 4 2 6 | |
| //1 4 6 | 5 8 2 | 7 9 3 | |
| //------+-------+------ | |
| //6 5 3 | 9 4 1 | 2 8 7 | |
| //2 9 4 | 8 7 6 | 1 3 5 | |
| //8 7 1 | 3 2 5 | 9 6 4 | |
| // | |
| // | |
| // | |
| //Grid 44 | |
| // | |
| //. 1 . | 5 . . | 2 . . | |
| //9 . . | . . 1 | . . . | |
| //. . 2 | . . 8 | . 3 . | |
| //------+-------+------ | |
| //5 . . | . 3 . | . . 7 | |
| //. . 8 | . . . | 5 . . | |
| //6 . . | . 8 . | . . 4 | |
| //------+-------+------ | |
| //. 4 . | 1 . . | 7 . . | |
| //. . . | 7 . . | . . 6 | |
| //. . 3 | . . 4 | . 5 . | |
| // | |
| //3 1 6 | 5 4 9 | 2 7 8 | |
| //9 8 7 | 3 2 1 | 6 4 5 | |
| //4 5 2 | 6 7 8 | 9 3 1 | |
| //------+-------+------ | |
| //5 9 4 | 2 3 6 | 8 1 7 | |
| //2 3 8 | 4 1 7 | 5 6 9 | |
| //6 7 1 | 9 8 5 | 3 2 4 | |
| //------+-------+------ | |
| //8 4 5 | 1 6 2 | 7 9 3 | |
| //1 2 9 | 7 5 3 | 4 8 6 | |
| //7 6 3 | 8 9 4 | 1 5 2 | |
| // | |
| // | |
| // | |
| //Grid 45 | |
| // | |
| //. 8 . | . . . | . 4 . | |
| //. . . | 4 6 9 | . . . | |
| //4 . . | . . . | . . 7 | |
| //------+-------+------ | |
| //. . 5 | 9 . 4 | 6 . . | |
| //. 7 . | 6 . 8 | . 3 . | |
| //. . 8 | 5 . 2 | 1 . . | |
| //------+-------+------ | |
| //9 . . | . . . | . . 5 | |
| //. . . | 7 8 1 | . . . | |
| //. 6 . | . . . | . 1 . | |
| // | |
| //5 8 6 | 1 2 7 | 9 4 3 | |
| //7 2 3 | 4 6 9 | 8 5 1 | |
| //4 9 1 | 8 5 3 | 2 6 7 | |
| //------+-------+------ | |
| //1 3 5 | 9 7 4 | 6 2 8 | |
| //2 7 9 | 6 1 8 | 5 3 4 | |
| //6 4 8 | 5 3 2 | 1 7 9 | |
| //------+-------+------ | |
| //9 1 7 | 2 4 6 | 3 8 5 | |
| //3 5 2 | 7 8 1 | 4 9 6 | |
| //8 6 4 | 3 9 5 | 7 1 2 | |
| // | |
| // | |
| // | |
| //Grid 46 | |
| // | |
| //9 . 4 | 2 . . | . . 7 | |
| //. 1 . | . . . | . . . | |
| //. . . | 7 . 6 | 5 . . | |
| //------+-------+------ | |
| //. . . | 8 . . | . 9 . | |
| //. 2 . | 9 . 4 | . 6 . | |
| //. 4 . | . . 2 | . . . | |
| //------+-------+------ | |
| //. . 1 | 6 . 7 | . . . | |
| //. . . | . . . | . 3 . | |
| //3 . . | . . 5 | 7 . 2 | |
| // | |
| //9 5 4 | 2 1 3 | 6 8 7 | |
| //6 1 7 | 5 4 8 | 9 2 3 | |
| //8 3 2 | 7 9 6 | 5 4 1 | |
| //------+-------+------ | |
| //7 6 3 | 8 5 1 | 2 9 4 | |
| //1 2 8 | 9 7 4 | 3 6 5 | |
| //5 4 9 | 3 6 2 | 1 7 8 | |
| //------+-------+------ | |
| //2 8 1 | 6 3 7 | 4 5 9 | |
| //4 7 5 | 1 2 9 | 8 3 6 | |
| //3 9 6 | 4 8 5 | 7 1 2 | |
| // | |
| // | |
| // | |
| //Grid 47 | |
| // | |
| //. . . | 7 . . | 8 . . | |
| //. . 6 | . . . | . 3 1 | |
| //. 4 . | . . 2 | . . . | |
| //------+-------+------ | |
| //. 2 4 | . 7 . | . . . | |
| //. 1 . | . 3 . | . 8 . | |
| //. . . | . 6 . | 2 9 . | |
| //------+-------+------ | |
| //. . . | 8 . . | . 7 . | |
| //8 6 . | . . . | 5 . . | |
| //. . 2 | . . 6 | . . . | |
| // | |
| //1 5 9 | 7 4 3 | 8 6 2 | |
| //2 7 6 | 5 8 9 | 4 3 1 | |
| //3 4 8 | 6 1 2 | 7 5 9 | |
| //------+-------+------ | |
| //6 2 4 | 9 7 8 | 3 1 5 | |
| //9 1 7 | 2 3 5 | 6 8 4 | |
| //5 8 3 | 1 6 4 | 2 9 7 | |
| //------+-------+------ | |
| //4 3 5 | 8 2 1 | 9 7 6 | |
| //8 6 1 | 4 9 7 | 5 2 3 | |
| //7 9 2 | 3 5 6 | 1 4 8 | |
| // | |
| // | |
| // | |
| //Grid 48 | |
| // | |
| //. . 1 | . . 7 | . 9 . | |
| //5 9 . | . 8 . | . . 1 | |
| //. 3 . | . . . | . 8 . | |
| //------+-------+------ | |
| //. . . | . . 5 | 8 . . | |
| //. 5 . | . 6 . | . 2 . | |
| //. . 4 | 1 . . | . . . | |
| //------+-------+------ | |
| //. 8 . | . . . | . 3 . | |
| //1 . . | . 2 . | . 7 9 | |
| //. 2 . | 7 . . | 4 . . | |
| // | |
| //8 6 1 | 3 5 7 | 2 9 4 | |
| //5 9 7 | 4 8 2 | 3 6 1 | |
| //4 3 2 | 6 1 9 | 7 8 5 | |
| //------+-------+------ | |
| //9 1 6 | 2 7 5 | 8 4 3 | |
| //3 5 8 | 9 6 4 | 1 2 7 | |
| //2 7 4 | 1 3 8 | 9 5 6 | |
| //------+-------+------ | |
| //7 8 9 | 5 4 1 | 6 3 2 | |
| //1 4 3 | 8 2 6 | 5 7 9 | |
| //6 2 5 | 7 9 3 | 4 1 8 | |
| // | |
| // | |
| // | |
| //Grid 49 | |
| // | |
| //. . . | . . 3 | . 1 7 | |
| //. 1 5 | . . 9 | . . 8 | |
| //. 6 . | . . . | . . . | |
| //------+-------+------ | |
| //1 . . | . . 7 | . . . | |
| //. . 9 | . . . | 2 . . | |
| //. . . | 5 . . | . . 4 | |
| //------+-------+------ | |
| //. . . | . . . | . 2 . | |
| //5 . . | 6 . . | 3 4 . | |
| //3 4 . | 2 . . | . . . | |
| // | |
| //2 9 4 | 8 6 3 | 5 1 7 | |
| //7 1 5 | 4 2 9 | 6 3 8 | |
| //8 6 3 | 7 5 1 | 4 9 2 | |
| //------+-------+------ | |
| //1 5 2 | 9 4 7 | 8 6 3 | |
| //4 7 9 | 3 8 6 | 2 5 1 | |
| //6 3 8 | 5 1 2 | 9 7 4 | |
| //------+-------+------ | |
| //9 8 6 | 1 3 4 | 7 2 5 | |
| //5 2 1 | 6 7 8 | 3 4 9 | |
| //3 4 7 | 2 9 5 | 1 8 6 | |
| // | |
| // | |
| // | |
| //Grid 50 | |
| // | |
| //3 . . | 2 . . | . . . | |
| //. . . | 1 . 7 | . . . | |
| //7 . 6 | . 3 . | 5 . . | |
| //------+-------+------ | |
| //. 7 . | . . 9 | . 8 . | |
| //9 . . | . 2 . | . . 4 | |
| //. 1 . | 8 . . | . 5 . | |
| //------+-------+------ | |
| //. . 9 | . 4 . | 3 . 1 | |
| //. . . | 7 . 2 | . . . | |
| //. . . | . . 8 | . . 6 | |
| // | |
| //3 5 1 | 2 8 6 | 4 9 7 | |
| //4 9 2 | 1 5 7 | 6 3 8 | |
| //7 8 6 | 9 3 4 | 5 1 2 | |
| //------+-------+------ | |
| //2 7 5 | 4 6 9 | 1 8 3 | |
| //9 3 8 | 5 2 1 | 7 6 4 | |
| //6 1 4 | 8 7 3 | 2 5 9 | |
| //------+-------+------ | |
| //8 2 9 | 6 4 5 | 3 7 1 | |
| //1 6 3 | 7 9 2 | 8 4 5 | |
| //5 4 7 | 3 1 8 | 9 2 6 | |
| // | |
| //sum: 24702 | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment