Question

Java Programming Assignment (JavaFX required). You will modify the SudokuCheckApplication program that is listed below. Start...

Java Programming Assignment (JavaFX required).

  1. You will modify the SudokuCheckApplication program that is listed below. Start with the bolded comment section in the code below.
  2. Create a class that will take string input and process it as a multidimensional array
  3. You will modify the program to use a multi-dimensional array to check the input text.

SudokuCheckApplication.java

import javafx.application.*;
import javafx.event.*;
import javafx.geometry.*;
import javafx.scene.*;
import javafx.scene.control.*;
import javafx.scene.layout.*;
import javafx.stage.*;

public class SudokuCheckApplication extends Application {

   public void start(Stage primaryStage) {
   
      // Create addressable controls
      // Reachable from the event handlers
      TextArea taInput = new TextArea("Input your Sudoku answer here:");
      TextArea taOutput = new TextArea("The results will display here:");
      
      // Create the GridPane pane
      GridPane pane = new GridPane();
      pane.setPadding(new Insets(10, 10, 10, 10));
      pane.setVgap(5);
      
      // Place nodes in the GridPane pane
      pane.add(new Label("Input Sudoku:"), 0, 0);
      pane.add(taInput, 0, 1);

      // Create FlowPane pane
      FlowPane btnPane = new FlowPane();
      btnPane.setAlignment(Pos.CENTER);
      pane.setHgap(5);

      // Place nodes in the FlowPane pane and place
      // pane in the GridPane pane
      btnPane.setPadding(new Insets(10, 10, 10, 10));
      btnPane.setHgap(10);
      
      // Create buttons and event handlers
      // Check Button
      Button btnCheck = new Button("Check");
      btnCheck.setOnAction(new EventHandler() {
         public void handle(ActionEvent e) {
            // take the text from taInput.getText() and use a multidimentional array to process the data
            
            // Output the result to taOutput.setText("the output string here");
            }
      });
      
      // Clear Button
      Button btnClear = new Button("Clear");
      btnClear.setOnAction(new EventHandler() {
         public void handle(ActionEvent e) {
            taInput.setText("");
            taOutput.setText("");
         }
      });
     
      
      // Place Buttons on the FlowPane and place FlowPane on GridPane
      btnPane.getChildren().addAll(btnCheck, btnClear);
      pane.add(btnPane, 0, 2);
                                                                                                                            
      // Place nodes in the GridPane pane
      pane.add(new Label("Check result:"), 0, 3);
      pane.add(taOutput, 0, 4);
      
      //Create scene and place it on the stage
      Scene scene = new Scene(pane);
      primaryStage.setTitle("CPT 237 Sudoku Checker");
      primaryStage.setScene(scene);
      primaryStage.show();
      
   }

   /**
   * The main method is only needed for the IDE with limited
   * JavaFX support. Not needed for running from the command line.
   */
   public static void main(String[] args) { 
    launch(args);
   }

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

as far as I understand the problem: Processing the input string using multidimension array makes me understand that we need to check the input and store it in 2D array of 9*9 size and checking the proper sudoku solution or not.

NOTE: let me know if i get this wrong.

JAVA code:

//taInput.java

//testing the code

import java.util.Scanner;

public class taInput {
   public static String getText(){
       Scanner s = new Scanner(System.in);
       return s.nextLine();
   }
}

//taOuput.java

//testing the code
public class taOutput {
   public static void setText(String s){
       System.out.println(s);
   }
}

SudokuCheckApplication.java

import javafx.application.*;
import javafx.event.*;
import javafx.geometry.*;
import javafx.scene.*;
import javafx.scene.control.*;
import javafx.scene.layout.*;
import javafx.stage.*;

public class SudokuCheckApplication extends Application {

   public void start(Stage primaryStage) {
   
      // Create addressable controls
      // Reachable from the event handlers
      TextArea taInput = new TextArea("Input your Sudoku answer here:");
      TextArea taOutput = new TextArea("The results will display here:");
      
      // Create the GridPane pane
      GridPane pane = new GridPane();
      pane.setPadding(new Insets(10, 10, 10, 10));
      pane.setVgap(5);
      
      // Place nodes in the GridPane pane
      pane.add(new Label("Input Sudoku:"), 0, 0);
      pane.add(taInput, 0, 1);

      // Create FlowPane pane
      FlowPane btnPane = new FlowPane();
      btnPane.setAlignment(Pos.CENTER);
      pane.setHgap(5);

      // Place nodes in the FlowPane pane and place
      // pane in the GridPane pane
      btnPane.setPadding(new Insets(10, 10, 10, 10));
      btnPane.setHgap(10);
      
      // Create buttons and event handlers
      // Check Button
      Button btnCheck = new Button("Check");
      btnCheck.setOnAction(new EventHandler() {
         public void handle(ActionEvent e) {
            // take the text from taInput.getText() and use a multidimentional array to process the data
            String arr[] = input.split(" ");
        System.out.println(input+" "+arr.length);
        int n = arr.length;
        
        if(n!=81) System.out.println("Not 81.");
        
        int grid[][] = new int[9][9];
        
        for(int i=0;i<9;i++){
            for(int j=0;j<9;j++){
                grid[i][j] = Integer.parseInt(arr[(i*9)+j]);
            }
        }
        
        check(grid);
        
        taOutput.setText(input);
            // Output the result to taOutput.setText("the output string here");
            }
      });
      
      // Clear Button
      Button btnClear = new Button("Clear");
      btnClear.setOnAction(new EventHandler() {
         public void handle(ActionEvent e) {
            taInput.setText("");
            taOutput.setText("");
         }
      });
     
      
      // Place Buttons on the FlowPane and place FlowPane on GridPane
      btnPane.getChildren().addAll(btnCheck, btnClear);
      pane.add(btnPane, 0, 2);
                                                                                                                            
      // Place nodes in the GridPane pane
      pane.add(new Label("Check result:"), 0, 3);
      pane.add(taOutput, 0, 4);
      
      //Create scene and place it on the stage
      Scene scene = new Scene(pane);
      primaryStage.setTitle("CPT 237 Sudoku Checker");
      primaryStage.setScene(scene);
      primaryStage.show();
      
   }

   /**
   * The main method is only needed for the IDE with limited
   * JavaFX support. Not needed for running from the command line.
   */
   public static void main(String[] args) { 
    launch(args);
   }

   private static void check(int[][] grid) {
        HashSet<Integer> set = new HashSet<>();
        
        //row-wise
        for(int i=0;i<9;i++){
            set.clear();
            for(int j=0;j<9;j++){
                if(set.contains(grid[i][j])){
                    System.out.println("Not correct.");
                    return;
                }
                set.add(grid[i][j]);
            }
        }
        
        //column-wise
        for(int i=0;i<9;i++){
            set.clear();
            for(int j=0;j<9;j++){
                if(set.contains(grid[j][i])){
                    System.out.println("Not correct.");
                    return;
                }
                set.add(grid[j][i]);
            }
        }
        
        //box-wise
        for(int i=0;i<3;i++){
            for(int j=0;j<3;j++){
                int row = (i*3);
                int col = (j*3);
                
                set.clear();
                
                for(;row<(i*3)+3;row++){
                    for(;col<(j*3)+3;col++){
                        if(set.contains(grid[j][i])){
                            System.out.println("Not correct.");
                            return;
                        }
                        set.add(grid[j][i]);
                    }
                }
            }
        }
        
        System.out.println("Correct.");
    }


}        
Add a comment
Know the answer?
Add Answer to:
Java Programming Assignment (JavaFX required). You will modify the SudokuCheckApplication program that is listed below. Start...
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
  • Intro to Java - Assignment JAVA ASSIGNMENT 13 - Object Methods During Event Handling Assignment 13...

    Intro to Java - Assignment JAVA ASSIGNMENT 13 - Object Methods During Event Handling Assignment 13 Assignment 13 Preparation This assignment will focus on the use of object methods during event handling. Assignment 13 Assignment 13 Submission Follow the directions below to submit Assignment 13: This assignment will be a modification of the Assignment 12 program (see EncryptionApplication11.java below). Replace the use of String concatenation operations in the methods with StringBuilder or StringBuffer objects and their methods. EncryptTextMethods.java ====================== package...

  • Please Help, JavaFX assignment. This assignment will focus on the use anonymous inner class handlers to...

    Please Help, JavaFX assignment. This assignment will focus on the use anonymous inner class handlers to implement event handling. Assignment 12 Assignment 12 Submission Follow the directions below to submit Assignment 12: This assignment will be a modification of the Assignment 11 program. This program should use the controls and layouts from the previous assignment. No controls or layouts should be added or removed for this assignment. Add event handlers for the three buttons. The event handlers should be implemented...

  • (5 points) Analyze the following codes. b) import javafx.application.Application; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.scene.Scene; import...

    (5 points) Analyze the following codes. b) import javafx.application.Application; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.layout.HBox; import javafx.stage.Stage; public class Test extends Application { @Override // Override the start method in the Application class public void start(Stage primaryStage) { Button btOK = new Button("OK"); Button btCancel = new Button("Cancel"); EventHandler<ActionEvent> handler = new EventHandler<ActionEvent>() { public void handle(ActionEvent e) { System.out.println("The OK button is clicked"); } }; btOK.setOnAction(handler); btCancel.setOnAction(handler); HBox pane = new HBox(5); pane.getChildren().addAll(btOK, btCancel); Scene...

  • Using JAVA FX how would I combine the two programs below into one interface that allows...

    Using JAVA FX how would I combine the two programs below into one interface that allows the user to pick which specific program they would like to play. They should be able to choose which one they want to play and then switch between them if necesary. All of this must be done in JAVA FX code Black jack javafx - first game program package application; import java.util.Arrays; import java.util.ArrayList; import javafx.collections.FXCollections; import javafx.collections.ObservableList; import javafx.application.Application; import javafx.geometry.Pos; import javafx.geometry.Insets;...

  • For this question you will need to complete the methods to create a JavaFX GUI application...

    For this question you will need to complete the methods to create a JavaFX GUI application that implements two String analysis algorithms. Each algorithm is activated when its associated button is pressed. They both take their input from the text typed by the user in a TextField and they both display their output via a Text component at the bottom of the GUI, which is initialized to “Choose a string methods as indicated in the partially completed class shown after...

  • use this code of converting Km to miles , to create Temperature converter by using java...

    use this code of converting Km to miles , to create Temperature converter by using java FX import javafx.application.Application; import javafx.stage.Stage; import javafx.scene.Scene; import javafx.scene.layout.HBox; import javafx.scene.layout.VBox; import javafx.geometry.Pos; import javafx.geometry.Insets; import javafx.scene.control.Label; import javafx.scene.control.TextField; import javafx.scene.control.Button; import javafx.event.EventHandler; import javafx.event.ActionEvent; /** * Kilometer Converter application */ public class KiloConverter extends Application { // Fields private TextField kiloTextField; private Label resultLabel; public static void main(String[] args) { // Launch the application. launch(args); } @Override public void start(Stage primaryStage) { //...

  • The JavaFX framework provides more than one way to handle events. For event handlers, we could...

    The JavaFX framework provides more than one way to handle events. For event handlers, we could use inner classes, anonymous inner classes, or the new Java 8 feature of lambda expressions. In this discussion, you will explore these different ways of writing event handles in JavaFX. To prepare for this discussion, you must unzip the attached NetBeans project zip file (U4D1_HandleEvents.zip) and load it into your NetBeans IDE. The project uses an inner class to handle the click event on...

  • JavaFX! Just need to fill several lanes of code please!!! CSE205 OOP and Data Structure Quiz #15 Last Name (print) First Name (print) Write a JavaFX GUI application program that simulates a timer. T...

    JavaFX! Just need to fill several lanes of code please!!! CSE205 OOP and Data Structure Quiz #15 Last Name (print) First Name (print) Write a JavaFX GUI application program that simulates a timer. The timer should show "count: the beginning and increase the number by 1 in every one second, and so on. o" at .3 A Timer - × A Timer Count: 0 Count: 1 (B) After 1 second, the GUI Window (A) Initial GUI Window According to the...

  • JavaFX programming (Not Javascript) Using the code from BallPane.java and BounceBallControl.java create a "Pong for One"...

    JavaFX programming (Not Javascript) Using the code from BallPane.java and BounceBallControl.java create a "Pong for One" game - a rectangular paddle moves back and forth via mouse drag along the bottom of the pane; the bottom of the paddle should be about 1/2 the diameter of the ball off the bottom. If the ball connects with the paddle, then it bounces at a 90 degree angle back into the pane space. If the ball misses the paddle, then the score...

  • Can someone please comment this on what the javafx do and how they are implemented? import...

    Can someone please comment this on what the javafx do and how they are implemented? import javafx.application.Application; import javafx.geometry.Insets; import javafx.geometry.Pos; import javafx.scene.Scene; import javafx.scene.control.Label; import javafx.scene.layout.GridPane; import javafx.scene.layout.HBox; import javafx.scene.layout.VBox; import javafx.scene.paint.Paint; import javafx.scene.text.Font; import javafx.scene.text.FontWeight; import javafx.scene.text.Text; import javafx.stage.Stage; public class TextPanel extends Application { GridPane grid = null; Text scenetitle = null; Label tDrawLabel = null; Label bsc345Label = null; HBox THBox = null; VBox mVBox = new VBox(2); Stage primaryStage = null; @Override public void start(Stage...

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