Kakuro Solver

From UBC Wiki

What is the problem?

Kakuro is a puzzle-based logic game that demonstrates a challenging integration of Sudoku and Crosswords into one game! The objective of Kakuro is to fill in the white cells with numbers, following two main rules:

  1. Each white cell must be filled with a single digit from 1 to 9 (inclusive).
  2. The numbers in each "word" (sum group/sequence of connected cells) must add up to the total given for that word, without repeating any digits within that word.

Kakuro puzzles come in various sizes and difficulty levels, ranging from small grids with easy sums to larger grids with more complex sums. Solving Kakuro puzzles often involves a combination of scanning the grid for opportunities, eliminating possibilities through logic, and making educated guesses when necessary.

Screen Shot 2024-03-25 at 2.56.02 PM.png

What is the something extra?

In our game, we would like to implement a checker that will see if a part-way completed solution is on the right track.

What did we learn from doing this?

Functional programming was suitable for our whole task as we were able to implement the whole Kakuro solver using the concepts within this type of programming.

When it comes to implementing a Kakuro solver in Prolog, we learned how to utilize techniques from logic programming and constraint satisfaction. Prolog is well-suited for this task due to its declarative nature and built-in support for constraint handling. As well, we learned how to structure the program for data bidirectionality, which involved designing the solver in a way that allows for efficient manipulation and traversal of both the puzzle grid and its constraints.

Work Division

Work was divided equally.

Links to code, etc.

https://github.com/TheD3vel0per/KakuroSolver