Question

A Sudoku puzzle consists of a 9 x9 grid which holds the numbers 1-9 in each space.The objective is to fill the grid with digi

0 0
Add a comment Improve this question Transcribed image text
Answer #1

Answer : make a SudokuPuzzel.java class and paste the given below code and run the program.Program has a Recursive method and perform the operation according to your question.

class SudokuPuzzle
{
   static int[][] board = new int[][]
           {
       {3, 0, 6, 5, 0, 8, 4, 0, 0},
       {5, 2, 0, 0, 0, 0, 0, 0, 0},
       {0, 8, 7, 0, 0, 0, 0, 3, 1},
       {0, 0, 3, 0, 1, 0, 0, 8, 0},
       {9, 0, 0, 8, 6, 3, 0, 0, 5},
       {0, 5, 0, 0, 9, 0, 6, 0, 0},
       {1, 3, 0, 0, 0, 0, 2, 5, 0},
       {0, 0, 0, 0, 0, 0, 0, 7, 4},
       {0, 0, 5, 2, 0, 6, 3, 0, 0}
           };
           static int N = board.length;
           public static boolean isSafeDriveSolution(int[][] board,
                   int row, int col,
                   int num)
           {
               // row has the unique (row-clash)
               for (int d = 0; d < board.length; d++)
               {
                   // if the number we are trying to
                   // place is already present in
                   // that row, return false;
                   if (board[row][d] == num)
                   {
                       return false;
                   }
               }
               // column has the unique numbers (column-clash)
               for (int r = 0; r < board.length; r++)
               {
                   // if the number we are trying to
                   // place is already present in
                   // that column, return false;

                   if (board[r][col] == num)
                   {
                       return false;
                   }
               }
               // corresponding square has
               // unique number (box-clash)
               int sqrt = (int) Math.sqrt(board.length);
               int boxRowStart = row - row % sqrt;
               int boxColStart = col - col % sqrt;

               for (int r = boxRowStart;
                       r < boxRowStart + sqrt; r++)
               {
                   for (int d = boxColStart;
                           d < boxColStart + sqrt; d++)
                   {
                       if (board[r][d] == num)
                       {
                           return false;
                       }
                   }
               }

               // if there is no clash, it's safe
               return true;
           }
           public static boolean driveSudokuPuzzle(int[][] board, int n)
           {
               int row = -1;
               int col = -1;
               boolean isEmpty = true;
               for (int i = 0; i < n; i++)
               {
                   for (int j = 0; j < n; j++)
                   {
                       if (board[i][j] == 0)
                       {
                           row = i;
                           col = j;
                           // we still have some remaining
                           // missing values in Sudoku
                           isEmpty = false;
                           break;
                       }
                   }
                   if (!isEmpty)
                   {
                       break;
                   }
               }
               // no empty space left
               if (isEmpty)
               {
                   return true;
               }

               // else for each-row backtrack
               for (int num = 1; num <= n; num++)
               {
                   if (isSafeDriveSolution(board, row, col, num))
                   {
                       board[row][col] = num;
                       //Recursive Calling........
                       if (driveSudokuPuzzle(board, n))
                       {
                           return true;
                       }
                       else
                       {
                           board[row][col] = 0; // replace it
                       }
                   }
               }
               return false;
           }
           public static void printSudokuPuzzle(int[][] board, int N)
           {
               // we got the answer, just print it
               for (int r = 0; r < N; r++)
               {
                   for (int d = 0; d < N; d++)
                   {
                       System.out.print(board[r][d]);
                       System.out.print(" ");
                   }
                   System.out.print("\n");

                   if ((r + 1) % (int) Math.sqrt(N) == 0)
                   {
                       System.out.print("");
                   }
               }
           }

           // Driver Code
           public static void main(String args[])
           {
               int [][] answer=constructSolution();
               printSudokuPuzzle(answer,answer.length); // print solution

           }
           private static int[][] constructSolution() {
               if (driveSudokuPuzzle(board, N))
               {
                   return board;
               }
               else
               {
                   System.out.println("No solution");
                   return null;
               }

           }
}

Add a comment
Know the answer?
Add Answer to:
A Sudoku puzzle consists of a 9 x9 grid which holds the numbers 1-9 in each...
Your Answer:

Post as a guest

Your Name:

What's your source?

Earn Coins

Coins can be redeemed for fabulous gifts.

Not the answer you're looking for? Ask your own homework help question. Our experts will answer your question WITHIN MINUTES for Free.
Similar Homework Help Questions
  • Hi, I don't know how to deal with this python question. Modules are not recommended. Sudoku...

    Hi, I don't know how to deal with this python question. Modules are not recommended. Sudoku is a popular number puzzle that appears in many newspapers on a daily basis. The objective of the game (adopted from Wikipedia) is: "... to fill a 9x9 grid with digits so that each column, each row, and each of the nine 3x3 sub-grids that compose the grid contains all of the digits from I to 9. The puzzle setter provides a partially completed...

  • Python Code. Sudoku is a puzzle where you're given a partially-filled 9 by 9 grid with...

    Python Code. Sudoku is a puzzle where you're given a partially-filled 9 by 9 grid with digits. The objective is to fill the grid with the constraint that every row, column, and box (3 by 3 subgrid) must contain all of the digits from 1 to 9. Implement an efficient sudoku solver.

  • Write a JAVA program to solve a sudoku! Given a partially filled 9×9 2D array ‘grid[9][9]’,...

    Write a JAVA program to solve a sudoku! Given a partially filled 9×9 2D array ‘grid[9][9]’, the goal is to assign digits (from 1 to 9) to the empty cells so that every row, column, and subgrid of size 3×3 contains exactly one instance of the digits from 1 to 9. I have posted 3 input files: sudoku1.txt, sudoku2.txt and sudoku3.txt Problem Analysis & Design - Think about how you will need to solve this problem. You should do an...

  • Starting code: #include <stdio.h> #include <stdbool.h> #include <assert.h> bool checkSudoku(int sudoku[9][9]) { //code goes here }...

    Starting code: #include <stdio.h> #include <stdbool.h> #include <assert.h> bool checkSudoku(int sudoku[9][9]) { //code goes here } int main() { int sudoku[9][9] = {{7, 3, 5, 6, 1, 4, 8, 9, 2}, {8, 4, 2, 9, 7, 3, 5, 6, 1}, {9, 6, 1, 2, 8, 5, 3, 7, 4}, {2, 8, 6, 3, 4, 9, 1, 5, 7}, {4, 1, 3, 8, 5, 7, 9, 2, 6}, {5, 7, 9, 1, 2, 6, 4, 3, 8}, {1, 5, 7, 4,...

  • Programming Language: JAVA Construct a program that uses an agent to solve a Sudoku puzzle as...

    Programming Language: JAVA Construct a program that uses an agent to solve a Sudoku puzzle as a Constraint Satisfaction Problem, with the following guidelines: 1. Since 3 x 3 puzzles are too trivial for a computer, your program should use 4 x 4 puzzles (also known as Super Sudoku puzzles; see Figure 2 for an example). 2. The program should read a Sudoku puzzle from a text file. The user should be able to browse the file system to select...

  • * Your goal in this exercise is to practice recursion and * to see how a...

    * Your goal in this exercise is to practice recursion and * to see how a properly written recursive solution can * take care of fairly complicated tasks with a few lines * of (well thought out) code. * * We will be solving Sudoku puzzles. In case you have never * solved or seen a Sudoku, you can learn more about them * here: * * https://en.wikipedia.org/wiki/Sudoku * * Your task if to write a function that takes an...

  • 18.1 Lab Lesson 11 (Part 1 of 1) Part of lab lesson 11 There in one...

    18.1 Lab Lesson 11 (Part 1 of 1) Part of lab lesson 11 There in one part to lab lesson 11. The entire lab will be worth 100 points. Lab lesson 11 part 1 is worth 100 points For part 1 you will have 80 points if you enter the program and successfully run the program tests. An additional 20 points will be based on the style and formatting of your C++ code. Style points The 20 points for coding...

  • Do the following project: Following is the file to be programmed in Linux kernel. Run this...

    Do the following project: Following is the file to be programmed in Linux kernel. Run this program. Include the screenshot of the results. Multi threaded Sorting Application Write a multithreaded sorting program that works as follows: A list of integers is divided into two smaller lists of equal size. Two separate threads (which we will term sorting threads) sort each sub list using a sorting algorithm of your choice. The two sub lists are then merged by a third thread—a...

  • specifically on finite i pmu r the number of objøcts or ways. Leave your answers in fornsiala form, such as C(3, 2) nporkan?(2) Are repeats poasib Two points each imal digits will have at le...

    specifically on finite i pmu r the number of objøcts or ways. Leave your answers in fornsiala form, such as C(3, 2) nporkan?(2) Are repeats poasib Two points each imal digits will have at least one xpeated digin? I. This is the oounting problem Al ancmher so ask yourelr (1) ls onder ipo n How many strings of four bexadeci ) A Compuir Science indtructor has a stack of blue can this i For parts c, d. and e, suppose...

ADVERTISEMENT
Free Homework Help App
Download From Google Play
Scan Your Homework
to Get Instant Free Answers
Need Online Homework Help?
Ask a Question
Get Answers For Free
Most questions answered within 3 hours.
ADVERTISEMENT
ADVERTISEMENT