0% found this document useful (0 votes)
48 views3 pages

Sudoku Validator in LabVIEW

Uploaded by

Lashawn
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
48 views3 pages

Sudoku Validator in LabVIEW

Uploaded by

Lashawn
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 3

Sudoku Validator in LabVIEW: Program Design and Analysis

This report discusses a LabVIEW program designed to validate a 9x9 Sudoku


board. The program checks whether the board follows Sudoku rules: every
row, column, and 3x3 sub grid (nonet) must contain the numbers 1 to 9
without repetition.

Program Structure

The program consists of a Block Diagram, where the validation logic is


implemented, and a Front Panel, which serves as the user interface.

Block Diagram

 Input: The program accepts a 9x9 Sudoku grid as input.

 Array Manipulation: Using Index Array and Array Subset, the program
extracts rows, columns, and nonets.

 Validation Logic: For each row, column, and nonet, the program
calculates the sum of the elements and checks for duplicates using for
loops. The sum should equal 45 (sum of 1 through 9), and all values
must be unique.

 Control: A while loop runs the program until all checks are completed
or the user stops it with the Force Stop button.

Front Panel

The Front Panel allows users to input the Sudoku grid and see the results of
validation. Indicators show whether rows, columns, and nonets are valid. A
Reset button clears the grid for new entries.

Key Concepts

 For Loops: Used to iterate through rows, columns, and nonets for
validation.

 Array Functions: Index Array and Array Subset help extract portions of
the grid for checking.

 While Loop: Provides control over program execution, allowing for a


user stop/reset option.

Testing and Performance

The program was tested with various valid and invalid Sudoku boards. It
accurately detected invalid rows, columns, and nonets, demonstrating
reliable performance.
Sudoku Validator in LabVIEW: Program Design and Analysis

Throughout development, the importance of good documentation became


clear. Proper naming conventions and clear explanations for variables and
functions—such as RowSum for row totals and NonetValidity for subgrid
checks—helped make the program more understandable for future review
and debugging. This documentation was not only useful for organizing code
but also essential for the troubleshooting process, as it simplified locating
and resolving issues in the logic.

The program's internal logic is organized around three key steps:


Initialization, Input Handling, and the Solving Algorithm. Initialization
prepares the Sudoku field and sets up variables for row, column, and nonet
validation. Input handling is managed through the Front Panel, where users
enter their board configuration. Simple error-checking ensures that each cell
is appropriately filled before running the main validation algorithm. The
solving algorithm then applies Sudoku rules across rows, columns, and
nonets, using a mix of for and while loops for efficient iteration.

The validation process itself involves isolating rows, columns, and nonets
through array functions like Index Array, Array Subset, and Reshape Array.
Each of these sections is checked to ensure it contains numbers 1 to 9 with
no duplicates. Specifically, the program validates each row and column for a
unique sum of 45 (the sum of numbers 1 to 9) and confirms that each 3x3
nonet meets the same criteria by reshaping it to a one-dimensional array and
checking for uniqueness and correct sum.

Conclusion

In conclusion, the Sudoku Validator project successfully demonstrates the


application of logical validation and array handling within LabVIEW. It
presented a few challenges, particularly in structuring code to check every
Sudoku constraint efficiently, but these were overcome through iterative
testing and careful planning. This project reinforced the importance of
structured programming, clear documentation, and effective use of
LabVIEW’s array and loop features.

Looking forward, potential improvements to the program could include


adding a solving feature for partially filled boards, automated error
highlighting to pinpoint specific invalid entries, and an option to randomly
generate valid Sudoku boards for user practice. This project was a valuable
learning experience in both LabVIEW programming and the broader
principles of software design and validation.
Sudoku Validator in LabVIEW: Program Design and Analysis

You might also like