My title is a bit confusing, but I’m trying to write a loop that will change the value in 81 arrays with different names. I want to either initiated the array with a value or an array of values. This is part of my sudoku solver code since I don’t think I’m explaining it well.
int cell1[], cell2[9], cell3[9],cell4[9]......cell81[9]; // <-- this will make 81 cells with an array that can hold a possible of 9 candidates
cout << "User input: << endl; // lets use ...1.5...14....67..8...24...63.7..1.9.......3.1..9.52...72...8..26....35...4.9...
// as an example
Let’s assume I store that input into a Char Array and I’m going to use a loop to decide whether to initiate the given value or ‘.’ as an empty value.
For empty values, I’m looking to initialize the array with 1-9 values. I can do this easily with this code.
If( ( (int)charArray[ 0 ] - 48) > 0 ) { // type cast to int. Neg = initialize array with 1-9
// pos = initialize with original value
cell1[ 0 ] = (int)charArray[ 0 ] - 48;
} else {
cell1[ 9 ] = { 1,2,3,4,5,6,7,8,9};
}
I want to avoid writing this code 81 times for 81 cells ( Considered as writing junk code ). I can’t figure out how to write the loop. I’m open to suggestions on how I can code this different using classes, functions, and etc. Thanks in advance.
Create the
cellarray as a 2-dimensional array, with 81 rows and 9 columns.Now you can loop through them using the syntax
cell[r][c]. For instance,If you’d prefer to avoid 2-D arrays, you can declare the array as a 1-dimensional array, and just index into it appropriately.