/sudoku

Sudoku generator and solver.

Primary LanguageRuby

Sudoku generator and solver

Running web demo

http://sudoku-game.herokuapp.com//

  • play on-line
  • print sudoku book

Usage from command line

Solve sudoku from file:

sudoku.rb <filename>
sudoku.rb <filename> <timelimit (0==off, -1==inf)>

Generate new sudoku:

sudoku.rb <dimension> [level=<1..5>] [alphabet|numeric] [time limit]

API

Create new sudoku:

require 'sudoku'

level = 3
dimension = 9
type = :numeric
sudoku = Sudoku::Genearator.new level, dimension, type
sudoku.print_sudoku

Solve sudoku with time limit 60 secods:

require 'sudoku'

sudoku = Sudoku::Solver.new Sudoku::Grid.read_file(ARGV[0]), 60
sudoku.print_result

Solver

Solver firstly tries solve a grid with rules before brute force method. Brute force method can be limited with time.

Implemented rules:

  • Only choice rule
  • Single possibility rule
  • Two out of three
  • Only square rule
  • Hidden single
  • Naked Twins exclusion rule
  • Hidden Twins exclusion rule
  • Subgroup exclusion rule
  • X-Wing exclusion rule
  • Sword Fish rule