Esempio n. 1
0
func main() {
	var rank bool
	flag.BoolVar(&rank, "rank", false,
		"Rank the puzzle in addition to solving it. Also test for uniqueness. False by default.")

	flag.Parse()

	var grid sudoku.Grid
	err := grid.Write(os.Stdin)
	if err != nil {
		log.Fatal(err)
	}

	ok, message := false, ""
	if rank {
		ok, message = grid.SolveAndRank()
	} else {
		ok = grid.Solve()
	}
	if !ok {
		log.Fatal("no solution exists for given sudoku puzzle")
	}
	fmt.Print(grid.String())
	if message != "" {
		fmt.Println(message)
	}
}