Python
Sudoku Series: Implementing Hidden Set Rules
In the last Sudoku Series blog post we implemented the naked pair and the naked triple rules. In this post, we will look at implementing the hidden single, hidden pair and hidden triple rules. Applying these rules is documented on many websites, but the two I’ve liked during my research are …
Sudoku Series: Implementing Naked Set Rules
In the last Sudoku Series blog post we implemented the single candidate rule. In this post, we will look at implementing both the naked pair rule and the naked triple rule. These are documented alongside more advanced rules on a Mastering Sudoku website.
If you like this post and you’d like to …
Sudoku Series: Implementing the Single Candidate Rule
This week, we hit a major milestone: our solver can now complete very easy Sudoku puzzles, thanks to the simplest rule of all — the single candidate rule. By writing code that parses the grid repeatedly and looks for opportunities to apply this rule, we’re able to solve some of the simplest …
Sudoku Series: Locating Your Neighbours
When solving Sudoku puzzles, a lot of the logic is about spotting patterns among groups of cells. In this context, a group of cells are those which must not contain a number among them more than once. Let’s build some logic to pick out groups of cells we might want to work with in our solving …
Migrating from Poetry to UV in a Python Project
This is a very short post about our move from Poetry to UV in the Sudoku Solver we’re building in Python. I don’t have a definitive reason for switching, but I’ve been experimenting with UV recently and I’m starting to prefer it over Poetry. In this post, we’ll outline the goals of the …
Unit Testing Our Python Sudoku Solver
This week we have a new topic for this blog, which is Unit Testing. While not as exciting as actually writing the functional code for a project, it is an important skill to have. By writing tests for your code, you get to check that it behaves the way you intended. Not only does this let you fix the …
First week implementing the Python Sudoku solver
This is the update post, a week after planning to build a Sudoku puzzle solver in Python. In this post, we’ll review the direction the project is going and discuss the setup steps involved in this new project.
If you like this post and you’d like to know more about how to plan and write …
Planning a Sudoku solver in Python
Sudoku is one of those puzzles that captivates anyone who attempts to solve it. Sudoku puzzles can range from very easy to fiendishly difficult, despite the rules being relatively simple and unchanging.
To be valid, a Sudoku puzzle must have only a single solution — and this constraint actually …
A review of Python package managers in 2025
This is an overview of the current state of Python package management in 2025. You can find this and other posts by browsing the Python tag.
Package management is a critical part of modern software engineering. It allows developers to declare, install, and isolate project dependencies in a reliable …
I play Advent of Code, and you should too!
One of the hardest parts of learning a language’s fundamentals is having enough meaningful problems to solve. “Hello World!” is all well and good, but when do you ever have to use that code in an application you’re building? That’s where Advent of Code comes in for me. …