Giter Club home page Giter Club logo

hsudoku's Introduction

hsudoku is a sudoku solver written in Haskell.

When I studied functional programming at the university we got to write a sudoku solver in Haskell by using backtracking. Now that is not especially efficient, and it does not represent how humans think about sudokus.

Nowadays, I don't get to do any Haskell at work, so this is mostly just to make sure I won't forget anything, and a neat way to solve sudokus by using the same techniques humans do.

How to run

You'll need a Haskell compiler and/or interpreter.

To run compiled:

$ make
$ ./hsudoku -f "test.sud"

To run interpreted:

$ ghci Main.hs
*Solve> sud <- readSudoku "test.sud"
*Solve> putStrLn $ printBoard $ solve sud

Example input
-------------
When using the -s parameter for inputing sudoku strings from command line, the
board should be formatted as 9 groups of 9 characters, corresponding to the
rows of the sudoku. A character can be either a number of 1-9, or a . to
indicate a "hole". Here is an example:

.7...6... 9......41 ..8..9.5. .9...7..2 ..3...8.. 4..8...1. .8.3..9.. 16......7...5...8.


Corresponds to:

.7...6... 9......41 ..8..9.5. .9...7..2 ..3...8.. 4..8...1. .8.3..9.. 16......7 ...5...8.


Related projects
----------------
Check out [sudoku_ocr](https://github.com/jonte/sudoku_ocr), which can do OCR
of sudoku images and output to a format readable by this solver.

hsudoku's People

Contributors

jonte avatar tobsan avatar

Watchers

 avatar  avatar

Forkers

jonte

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.