Git Product home page Git Product logo

sudoku's Introduction

语言切换:简体中文

Sudoku Studio1

stars issues license

bilibili

Introduction

A sudoku handling SDK using brute forces and logical techniques. Now this solution supports generating puzzles, solving puzzles (with logical & illogical techniques) and some attribute checking (for example, to determine whether the specified grid is a minimal puzzle, which will become multiple solutions when any a digit is missing).

Sample

Here I give you a sample to demonstrate how to solve a puzzle using manual sudoku techniques.

Extra description

In the future, I'd like to apply this solution to almost every platform. I may finish the Win10 app project, android app project, bot on common on-line platforms (QQ, Bilibili and so on).

Please note that the programming language version is always used as 'preview', which means some preview features are still used in this solution.

You can also use JetBrains Rider as your IDE. Use whatever you want to use, even Notepad :D Although C# contains some syntaxes that are only allowed in Visual Studio (e.g. keyword __makeref), this repo doesn't use them. Therefore, you can use other IDEs to develop the code in this repo liberally.

In addition, the framework and IDE version may update in the future; in other words, they aren't changeless. The information is for reference only.

I don't use MVVM to design my UI project because I'm not familiar with it. If using as learning it, the development speed will be extremely slow.

Prefaces

Command line:

UI:

The program is being under construction now!

Technique Supports

This solution supports many kinds of human-friendly techniques. Here I will list them.

  • Singles
    • Naked Single, Full House
    • Hidden Single, Last Digit
  • Candidate-Related Techniques
    • Locked Candidates Family
      • Locked Candidates
      • Almost Locked Candidates
      • Firework Subsets (Hanabi)
    • Subsets
      • Naked Subsets
      • Hidden Subsets
    • Fishes (including finned types)
      • Normal Fishes
      • Complex Fishes (Franken Fishes, Mutant Fishes)
    • Single-Digit Structures
      • Two-Strong-Links
      • Empty Rectangle
      • Guardian (Waiting for bugs fixed)
    • Wings
      • Regular Wing (XY-Wing, XYZ-Wing, etc.)
      • Irregular Wing (W-Wing, M-Wing2, etc.)
    • Uniqueness
      • Unique Rectangle
      • Unique Loop (Waiting for bugs fixed)
      • Extended Rectangle (Including fit types and fat types)
      • Unique Polygon (i.e. Borescoper's Deadly Pattern)
      • Qiu's Deadly Pattern
      • Unique Square
      • Bi-value Universal Grave
    • Alternating Inference Chains
      • Single-Digit AICs
      • Multi-Digit AICs
      • Grouped AICs (Waiting for bugs fixed)
    • Almost Locked Sets
      • Chaining ALSes (Including ALS-XZ, ALS-XY-Wing, ALS-W-Wing)
      • Empty Rectangle Intersection Pair
    • Rank Logics
      • Positive or 0 -Rank Logics
        • Sue de Coq (Including basic type, isolated digit type and cannibalistic type)
        • 3-Dimensional Sue de Coq
        • Domino Loop
        • Exocets
          • Junior Exocet
        • Multi-Sector Locked Sets
      • Negative Rank Logics
        • Bi-value Oddagon (Waiting for bugs fixed)
        • Tri-value Oddagon
    • Symmetrical Placements
      • Gurth's Symmetrical Placements
    • Last Resorts
      • Bowman's Bingo
      • Computer Algorithms
        • Pattern Overlay
        • Templating
        • Brute Force

Some other techniques will be implemented later, such as senior exocets, unknown covering, death blossom, forcing chains and dynamic chains.

Forks & PRs (Pull Requests) for This Repo

Of course you can fork my repo and do whatever you want. You can do whatever you want to do under the MIT license. However, due to the copy of the GitHub repo, Gitee repo doesn't support any PRs. I'm sorry. But you can create the issue on both two platforms. Please visit the following part "Basic Information" for learning about more details.

In addition, this repo may update frequently (At least 1 commit in a day).

Planning

Please visit this link for more information.

Open source license

Codes

The codes in this repository uses MIT license, which means you should mention the copyright of the author of the repository if you want to use code snippet in this repository.

Wiki pages

The repository also lists many wiki pages, being stored in the folder docs. In addition, files README.md and README-zh-cn.md (as Chinese translation version) are also included as wiki pages. Those pages uses CC-BY-4.0 license to constraint your usage and copyright statements on this repository. You should mention the copyright of the author in this repository and give the state changes after modified the content in the copied one if you want to use the Wiki pages.

Code of Conduct

Please see the file CODE_OF_CONDUCT.

Sudoku Technique References

Here we list some websites about sudoku techniques that I used and referenced. The contents are constructed by myself, so if you want to learn more about sudoku techniques that this solution used and implemented, you can visit the following links3 to learn about more information.

Author

Sunnie, from Chengdu, is a normal undergraduate from Sichuan Normal University. I mean, a normal university (Pun)

Footnotes

  1. The old name of the repository is "Sunnie's Sudoku Solution".

  2. W-Wing is implemented by a single technique searcher type, while other irregular wing types are implemented by AIC searchers.

  3. I'm sorry that those pages are written in Chinese. However, I may create pages written in other languages in the future.

sudoku's People

Contributors

sunnieshine avatar sudokuwiki avatar

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.