Your goal is to create a Sudoku solver program that uses the hill-climbing algorithm to produce solutions
Question:
Your goal is to create a Sudoku solver program that uses the hill-climbing algorithm to produce solutions for any given 9x9 Sudoku puzzle. Implement in Java programming language, as long as you are able to implement the hill-climbing algorithm completely. Your program should accept a matrix as an input (like the examples that I have included below) and return a formatted output that resembles a Sudoku layout. Text output is fine, or you may output to a file (or both). Your program should also display the intermediate steps to solving the puzzle (the program’s “thinking”, in a manner of speaking) in order to receive full credit. Use the following three Sudoku puzzles as testers to evaluate the accuracy of your algorithm. Easy Difficulty: [[8,_,_,9,_,3,_,_,1], [_,_,5,_,8,_,9,_,_], [_,3,_,_,_,_,_,6,_], [4,_,_,1,_,6,_,_,2], [_,6,_,_,_,_,_,4,_], [1,_,_,7,_,2,_,_,5], [_,7,_,_,_,_,_,9,_], [_,_,2,_,5,_,8,_,_], [9,_,_,4,_,1,_,_,3]]