Project: Sudoku

Authors:

Purpose

Sudoku is a logic based number placement puzzle where a player must complete a 9x9 grid where each row, column, and 3x3 subgrid (block) contains all digits 1-9 without any repeating elements. Creating a Sudoku board will be challenging and will require use of the numpy module and possibly the random module. This lab will use many of the features of numpy that you will start to feel familiar with and will help solidify your confidence in using numpy for future programming endeavours.

Starting Material

It is recommended you use this Starting Template and that you follow further instructions given in the template.
Make sure you understand all of the given template and its use of the numpy module.
You may change any code given in the template to support yourself working through the TODO tasks.

References:

Assignment

In this assignment you will create a Sudoku board game by first creating a valid solution. You will ask the user for how many values to be removed from the board, you will then remove unique random positions on the Sudoku board that will then have to be solved to finish the Sudoku game. You will continually prompt the user for a target (row,column) and the value to be put into the given target. Your user prompts should not crash when given invalid inputs and should also be checked for validity on the board.
They should not be allowed to change starting positons that were not removed. The user should also be able to print the solution board for help. When the board is solved, print the finished board and congradulate the user.

Here is an Example Output (uses 0 to replace) and a picture from PyCharm using colors here. Note: PyCharm can have different output font than Idle

Grading

Variable names should be appropriate and follow good naming convetions

It is recommended to have a partner for this assignment, only one person from each group need to submit the necessary file with their partners name included. Code should be your own.