Educative Sudoku was a research project aiming to develop an interactive game teaching basic logic principles to kindergarten students.
The main idea behind this project was to build an interactive, electronic game with a truly intuitive interface – meaning not your typical touch screen or screen & mouse. We therefore built a whole board made of wood, containing sensors linked to Arduino boards. When the player puts one of the big, colored boxes in a slot, the sensors parses the color data then sends it to an Arduino Mega that handles the game logic. That board in turns tests the position against the rules of Sudoku, and informs the player if his move was incorrect via a buzzer. Thus, the game is playable much like any regular board game, requiring absolutely no prior knowledge of computers or electronic devices.
During the course of this project, I was more specifically in charge of developing all the Arduino code. I therefore implemented the algorithm responsible for both checking the validity of a given position against the Sudoku rules and communicating the results through I2C, as well as an algorithm that randomly generates a valid initial grid – meaning arbitrary placing enough boxes so that the subsequent problem only has a unique solution. The latter works in two steps, first creating a randomly filled and valid Sudoku board, then emptying it slowly while ensuring a unique solution.
This project was for us the opportunity to build something from the ground up, including both coding and actually building the game’s components. Communication between Arduino boards is done through I2C, and we design and soldered all the shields used in this game.
This project was coded in C++ and Arduino, from October 2016 to December of the same year. The code is available on GitHub.