The main purpose of this section is to help you to understand that you should always use the simplest data structure that does the job you want it to. In this case, that data structure will be a humble slice, which will be used for representing and verifying a Sudoku puzzle. Alternatively, we could have used an array because Sudoku puzzles have a predefined size.
A Sudoku is a logic-based, combinatorial, number-placement puzzle. Verifying a Sudoku puzzle means making sure that the Sudoku puzzle is correctly solved – this is a task that can be easily done by a computer program.
In order to be as generic as possible, the presented utility, which is named sudoku.go and will be presented in four parts, will load Sudoku puzzles from external files.
The first part of sudoku.go is as follows:
package main import ( "bufio" "errors...