: https://www.linkedin.com/in/ash-french-tamil
: https://medium.com/@ash.french.tamil
- Docs
- Classic Sudoku
- Killer Sudoku
- Tooling
- How to Build
- References
- Miscellaneous
- Links
- Security Policy
This is a rewrite in kotlin of my Computer Science dissertation project. I Studied
Computer Science with a Year in Industry (2006-2010)
with IBM(2008-2009)
at Manchester University. I achieved a 1st class honours for this project and was in the top 10 of the year.The goals of this project is to be able to take any Killer Sudoku Grid and then be able to solve them from said grid.
I should be able to demonstrate solving by brute force, but also be able to solve using human techniques.
The human provided techniques should also be able to graphically display or verbally describe how to solve said Sudoku Grid
I will be using https://sudoku.com/ as a source of data to test my algorithms
Classic sudoku has been around for years and can easily be solved through brute force. The aim of this project is to show and demonstrate how to solve example puzzles. Show techniques and provide solutions.
A simple brute force algorithm will be provided to show how to solve a well-posed puzzle
Further algorithms will be provided with a human style UX to help the user learn how to solve the puzzles
The objective is to fill the grid with numbers from 1 to 9 in a way that the following conditions are met:
./gradlew build
The way you can listen to any updates for a grid will return any CellUpdates which all have a unique ID, so you can check which have been processed already.
I will try to make optimisations that I think can be added from LibreSudoku
import kotlinx.serialization.Serializable
@Serializable
sealed class CellUpdate : UpdateID
Useful links for the project status and tracking
- https://www.ibm.com
- https://www.cs.manchester.ac.uk/
- https://en.wikipedia.org/wiki/Brute-force_search
- https://en.wikipedia.org/wiki/Killer_sudoku#Solving_strategies
- https://sonarcloud.io/summary/overall?id=ashfrench_killer-sudoko
- https://kotlinlang.org/
- https://gradle.org/
- https://www.oracle.com/java/technologies/downloads/
- https://www.jetbrains.com/lp/compose-multiplatform/
- https://junit.org/junit5/docs/current/user-guide/#extensions
- https://github.com/users/ashfrench/projects/1/views/1
- https://html.com/html5/
- https://www.markdownguide.org/cheat-sheet/
- https://junit.org/junit5/docs/current/user-guide/
- https://en.wikipedia.org/wiki/Well-posed_problem
- https://qodana.cloud/projects/3dBJ8/reports/RwegE
- https://gitlab.com/opensudoku/opensudoku
- https://github.com/kaajjo/LibreSudoku