{"id":26186666,"url":"https://github.com/mariomarton/racket-sudoku-solver","last_synced_at":"2026-03-15T02:38:50.621Z","repository":{"id":279801305,"uuid":"940008063","full_name":"mariomarton/racket-sudoku-solver","owner":"mariomarton","description":"Sudoku solver in Racket for any board size (including hexadoku \u0026 larger), built without constraint solvers or mutations. It solves any legal puzzle and detects invalid ones.","archived":false,"fork":false,"pushed_at":"2025-02-27T14:55:40.000Z","size":8,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-27T19:29:56.174Z","etag":null,"topics":["functional-programming","hexadoku-solver","lisp","racket","racket-lang","sudoku","sudoku-solver"],"latest_commit_sha":null,"homepage":"","language":"Racket","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mariomarton.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-02-27T13:18:23.000Z","updated_at":"2025-02-27T15:21:27.000Z","dependencies_parsed_at":"2025-02-27T19:30:27.667Z","dependency_job_id":"645d2b3e-05cb-4121-8471-5c2d1c756937","html_url":"https://github.com/mariomarton/racket-sudoku-solver","commit_stats":null,"previous_names":["mariomarton/racket-sudoku-solver"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mariomarton%2Fracket-sudoku-solver","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mariomarton%2Fracket-sudoku-solver/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mariomarton%2Fracket-sudoku-solver/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mariomarton%2Fracket-sudoku-solver/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mariomarton","download_url":"https://codeload.github.com/mariomarton/racket-sudoku-solver/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243130694,"owners_count":20241167,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["functional-programming","hexadoku-solver","lisp","racket","racket-lang","sudoku","sudoku-solver"],"created_at":"2025-03-11T23:33:43.102Z","updated_at":"2025-12-25T02:10:27.742Z","avatar_url":"https://github.com/mariomarton.png","language":"Racket","funding_links":[],"categories":[],"sub_categories":[],"readme":"\r\n\r\n\r\n\r\n\r\n\r\n# racket-sudoku-solver\r\n\r\nThis Racket program solves any legal sudoku puzzle with any number of pre-filled cells. It supports boards of any size that follow the formula:\r\n\r\n$$ n^2 \\times n^2 \\mid n \\geq 1 $$\r\n\r\nFor example, a standard 9x9 sudoku board corresponds to $n = 3$.\r\n\r\nThe program does not use constraint solvers or Racket mutations such as the `set!` form. It also verifies that the input puzzle adheres to sudoku rules.\r\n\r\n## Manual\r\n\r\n### Configuration\r\n\r\nEnsure the three `*.rkt` files are in the same directory:\r\n\r\n-   **`run.rkt`** – Main file for executing commands.\r\n-   **`puzzles.rkt`** – Stores example and user-defined puzzles.\r\n-   **`racket-sudoku-solver.rkt`** – Contains all functions for solving puzzles.\r\n\r\n### Running the Demo\r\n\r\nThis solver comes with a built-in demo that solves the 9 provided example puzzles. To run the demo, simply execute the **`run.rkt`** file.\r\n\r\n### Solving Your Own Puzzle\r\n\r\n#### 1. Provide a Puzzle\r\n\r\n-   Open **`puzzles.rkt`**.\r\n-   Use `0` to represent empty cells.\r\n-   All cell values must be in _decimal format_, even for larger puzzles like Hexadoku.\r\n-   Insert your sudoku puzzle in the following format:\r\n\r\n```racket\r\n(define userSudoku '(\r\n  0 2 0  0 0 8  0 6 5\r\n  0 0 1  3 4 0  0 0 0\r\n  0 9 8  2 0 5  0 0 0\r\n\r\n  0 0 0  0 0 0  8 0 0\r\n  0 0 0  9 5 0  0 0 2\r\n  2 7 0  8 1 3  5 0 6\r\n\r\n  0 4 0  6 0 0  9 0 8\r\n  1 8 7  0 0 9  6 2 0\r\n  9 6 0  4 0 2  0 0 0\r\n))\r\n\r\n```\r\n\r\n#### 2. Run the Solver\r\n\r\n-   Inside **`run.rkt`**, use the `solve` function to solve your puzzle:\r\n    \r\n    ```racket\r\n    (solve userSudoku)\r\n    \r\n    ```\r\n    \r\n-   If a solution exists, it will be printed to the standard output.\r\n-\tAn example of running a user-defined puzzle can be found at the end of the **`run.rkt`** file.\r\n\r\nNow you're ready to solve sudoku puzzles of any size using Racket!\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmariomarton%2Fracket-sudoku-solver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmariomarton%2Fracket-sudoku-solver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmariomarton%2Fracket-sudoku-solver/lists"}