How do you create a Sudoku program using C++?

Part 2 Tasks (Objective from Week 5):

  • Append to this portfolio 1 last project that includes the design of an artificial intelligence agent. Specifically, your company has asked your team to design an app that will complete a Sudoku game, given any starting state of the game. See this Web site for the rules.

Part 2a: State Space

  • Describe how you plan to search for the Sudoku solution given a starting state.
  • Clearly define your state space here: What does a vertex in your state traversal tree represent?

Part 2b: Traversal Time Complexity

  • Assuming you were to naively traverse your state space, what is the upperbound time complexity (in terms of Big-O) of a brute force searching algorithm?
  • Present this result in terms of n and p where nxn is the size of the Sudoku board and p is the number of possible numbers (1–9) permitted in a square.

Part 2c: Heuristic Search

  • What type of heuristic search would you employ to search this state space in hopes to reduce the search time?
  • Think about the problem and how you might search this state-space tree.

Part 2d: Pseudocode

  • Create pseudocode that finds the solution to a Sudoku game using a brute force search or using your heuristic discussed above.
  • To simplify this task, assume that you have standard data structures available to you, such as stacks and queues.