This week was a week before demo, so I put my focus into completing and making sure that the software I was in charge of was ready for demo week. Quite fortunately, significant progress was made in finalizing the interactive Sudoku program.
The primary development tasks included implementing the core functionality of the game using Pygame and integrating it with a Raspberry Pi for the final project demonstration. Additionally, the program was tested for visual clarity when projected onto a surface using a stand. The game now features a complete initialization process where a new Sudoku puzzle is generated using the py-sudoku library. Users can select different difficulty levels, which are adjustable to suit their preferences. The initial state of the puzzle is stored, ensuring that pre-filled cells remain unaltered during gameplay. User interaction is fully implemented, allowing players to select cells with a mouse click and input numbers using the numeric keys (1-9).
Players can clear entries using the backspace or delete keys. Visual feedback has been incorporated, with selected cells highlighted for easy identification. Errors are detected using custom logic, and invalid cells are highlighted with a distinct color to provide immediate feedback. Additional functionality includes game management options. Users can reset the puzzle to its initial state, generate a new puzzle with a different difficulty level, and even use the built-in solver from py-sudoku to automatically complete the puzzle. A helpful hint feature is also available, providing the correct number for a selected empty cell. Pre-filled numbers are displayed in black, while user-input numbers appear in gray. A winning message is displayed when the puzzle is successfully completed, and the current difficulty level is shown at the bottom of the screen.
On Thursday, the team conducted a successful test to ensure the Pygame program projected correctly onto the wall. The display’s visibility and alignment were adjusted using a stand, ensuring it was clear and properly positioned for the final demonstration. While the capacitive grid touch sensor requires further adjustments, most of the software components are nearing completion and are ready for the demo. Our team also aims to meet in Sunday in order to finalize all moving parts and make sure they are ready for demo, as well as deciding how we will verbally present our project for the demo.