We found that sometimes when you're solving codewords in the newspaper, you just can't find one or two letters that you need.

How it works

You take a photo of the puzzle with your phone and present it to the app. It processes the image using OpenCV to determine the structure of the puzzle and detect the numbers. Then, this result is passed to the solver which works out the solution to the puzzle in less than a couple of seconds, presenting the user with a digitised version of the puzzle with the ability to reveal certain letters.

Challenges I ran into

  • Image processing is not easy, especially recognising digits.
  • We were using Kivy for making the mobile version, but we had major headaches getting everything to work correctly and quickly

Accomplishments that I'm proud of

  • Getting the image processing working correctly on puzzles with varying levels of image quality
  • Make a fast and efficient data structure for solving the puzzle

What I learned

  • Don't trust Kivy ;)
  • If you're developing an app, it's probably best to try and do it natively rather than using a wrapper around another language

What's next for Codebreaker

  • Rewrite in Java and make it work quickly and properly on Android

Built With

Share this project: