Simple sudoku implementation, JAVA Programming

Assignment Help:

SudCell and Simple Sudoku Implementation

We describe, fully, the SudCell class that will represent each of the 81 cells or boxes in a Sudoku puzzle.  Then we will see a simple version of the Sudoku class.  Make sure you have read and understood the general introduction to the SudCell and Sudoku class in the main assignment page.  I have laid out every detail of the class members and methods for you, so although this is a long document, it should be actually easier than assignments which are shorter but less specific.

SudCell Class Specification

 Create a class called SudCell that has the following private members:

  • boolean digits[] - an array of nine booleans, each representing the digits 1 through 9.  If digits[0] is true, that means this cell might contain a 1.  If digits[1] is true, it might contain a 2, and so on.  This is private.
  • boolean completed - a private boolean telling our higher level classes whether or not we are done exploiting this cell.  All SudCell objects start with completed = false, even those for which we are given the final value, because for those "givens" we still have not utilized that fact yet.  Once we do, we turn this cell off (set completed to true).

The following public static members will allow us to turn this into a 4x4 or  16x16 Sudoku with a few keystrokes -- we'll use these constants throughout the code and never have a 1 through 9 literal in any part of our program.

  • static final int MIN_VAL = 1
  • static final int MAX_VAL = 9
  • static final int NUM_VALS = 9
  • static final int SQRT_NUM_VALS = 3
  • static final int NOT_FINAL_YET = -1    (used to signal whether or not we have narrowed down the boolean digits[] array to one value -- different from completed if you think about it).

You should supply all of the following public methods (at a minimum):

Basic Stuff:

  • Constructor - just one, default, that allocates digits[], sets the digits to all true and completed to false.
  • ToString() - a method that will return a String that is a " - " if the cell has more than one true, or a digit (surrounded by spaces) if the cell is narrowed down to just one (true) value. Since the Sudoku class will  need to build a 9x9 matrix on the display, this should not contain any newline ('\n') character -- just three chars, the two spaces and the middle digit or '-'.  This is used for end-user output.
  • ToStringReveal() - This returns a string that contains all the values that this cell might still be.  In other words, if you have not ruled out 3, 5 or 9, it would return the string " 359 " (with spaces at both ends).  If you have narrowed it down to 9, it will return " 9 ".  If you have not narrowed it down at all, it would return " 123456789 ".   (I could have combined ToString() and ToStringReveal() into one method that took a boolean parameter, but I chose to make these two different methods.)  In a console based application, printing all the cells using ToStringReveal() might result in a raggedy matrix, since each cell will have a different length, but that's not too critical.  You could make the return values of ToStringReveal() all the same length by padding with spaces, but from two weeks of debugging I have found that it is better to let the 9x9 array that displays these "revealed" strings be jagged, because it helps to more easily determine whether two successive outputs of an in-progress Sudoku are the same or different.

 


Related Discussions:- Simple sudoku implementation

Java identifiers, 1. Which of the following are not valid Java identifiers,...

1. Which of the following are not valid Java identifiers, and why? (a) wolVes (b) United(there is only one) (c) 87 (d) 5 3 (e) Real ale (f) isFound?by 2. A cla

Develop a school java project, Develop a School java project Project Des...

Develop a School java project Project Description: Programming java, threads. Not so hard but requires knowledgeSkills required: Java

What is bullseye explain with an example, What is Bullseye explain with an ...

What is Bullseye explain with an example? This is a easy applet that draws a series of filled, concentric circles alternating red and white, instead a bullseye. import java.ap

Performs simple editsusing html and javascript, You are to write two versio...

You are to write two versions of this assignment. One using HTML and VBScript and one using HTML and Javascript. In both, you are to create an HTML webpage that: performs simple

Arrays, 1. Arrays and working with arrays

1. Arrays and working with arrays

Explain the rules for tostring() methods, Explain the Rules for toString() ...

Explain the Rules for toString() Methods ? toString() methods should return a single line of text that does not contain any carriage returns or linefeeds. toString() methods

How many bits are used to show unicode and ascii, How many bits are used to...

How many bits are used to show Unicode, ASCII, UTF-16, and UTF-8 characters? Unicode requires 16 bits and ASCII require 7 bits although the ASCII character set uses only 7 bits

Minimum Passing Credential, Alia is appearing for the board exams. In order...

Alia is appearing for the board exams. In order to qualify for the next class Alia need to get exactly X credits. In current semester Alia has to study N number of subjects, and ev

Java application for create-read-update in table, You are required to imple...

You are required to implement a Java application that allows a user to create, read, update and delete data in a table in a MySQL database. Your program must use a Java class that

Define testing with respect to programming, Define testing with respect to ...

Define testing with respect to programming? Testing is the process through that we try to determine the presence defects in a program. Testing is an significant step in soft

Write Your Message!

Captcha
Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd