This is a sudoku solver by doing backtracking search with forward checking using an MRV and degree heuristic. This was worked on in a group of myself and two other members.
To solve a specific sudoku puzzle, replace the initialization of startingState1, startingState2, or startingState3 with that number configuration; then, select that number in the main menu when the program is running.