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