Write a Java program that implements basic aspects of the above game (for exact requirements see below). Your program should have some examples (at least one legal and solvable puzzle, and one illegal/unsolvable).• Implement only two classes, Takuzu (which will contain some examples and tests in a main method) and TakuzuLogic (where everything else will go).• Implement a validity checker. It should work for both completed and non-completed puzzles. For non- complete puzzles, it should check the validity of the incomplete puzzle, not if the puzzle is solvable.• Implement a simple solver (i.e., guessing and backtracking are not necessary). The solver should not loop indefinitely if it cannot solve the puzzle• It is not necessary to implement “fancy” features (e.g., user input, GUI, …)• Forsimplicity,youcanassumethatthenumberofcolumns/rowsisdivisiblebytwo,andequalorgreater than 4. You are free to specify your “empty” cells as you desire, but it should be easy to change in order to accept any puzzle. You can assume that non-empty cells are 0s and 1s.• (Bonus) Only if you have finished everything, we can discuss adding backtracking to your solver.