@@ -14,14 +14,15 @@ var printer = require('./boardprinter.js')
14
14
var checkBlock = require ( './checkBlock.js' ) ;
15
15
var printer = require ( './boardprinter.js' ) ;
16
16
17
+
17
18
//NOT YET SOLVED
18
19
var boardString = " 2 1 8 1 8 6 7 2 1 8 1 9 7 2 3 6 4 2 1 6 5 3 1 9 5 9 4 " ;
19
20
20
21
//SOLVABLE
21
22
//var boardString = "7 4 2 9 416 6 11 7 8 8 74132 9 9 8 56 2 413 8 2 8 6";
22
23
//var boardString = " 8 3 42 6 9 332 4 9 75 9 6 6 185 7 8 4 93 3 4 515 7 2 26 9 1 "
23
24
24
-
25
+ var unsolvedArraySize ; // sums length of all possibles arrays
25
26
var boardArray = boardString . split ( '' ) ;
26
27
var masterCycleCount = 0 ;
27
28
var masterCycleCountLimit = 5000 ;
@@ -36,12 +37,12 @@ databuilder(boardArray, findOptions);
36
37
//set iteration control
37
38
38
39
39
-
40
-
41
40
function findOptions ( fullArray ) {
42
41
var row , col ;
43
42
var solvedSquares = 0 ;
44
43
masterCycleCount = masterCycleCount + 1 ;
44
+
45
+
45
46
if ( masterCycleCount >= masterCycleCountLimit ) {
46
47
console . log ( 'Master Cycle Limit Exceeded' ) ;
47
48
@@ -92,7 +93,7 @@ function insertSingletonValue(fullArray){
92
93
fullArray [ row ] [ col ] . value = fullArray [ row ] [ col ] . possibles [ 0 ] ; //assign the value!
93
94
94
95
95
- console . log ( 'Singleton assigned at: ' + ( col + 1 ) + ', ' + ( 9 - row ) ) ;
96
+ console . log ( 'Singleton assigned at col : ' + ( col + 1 ) + ', row: ' + ( 9 - row ) ) ;
96
97
console . log ( 'Block is: ' + fullArray [ row ] [ col ] . block ) ;
97
98
buildPrinterString ( fullArray ) ;
98
99
@@ -142,6 +143,8 @@ function insertDupleValues(fullArray){
142
143
function buildPrinterString ( fullArray ) {
143
144
var printableArray = [ ] ;
144
145
var set ;
146
+ var unsolvedArraySize = 0 ; // reset sum of length of all possibles arrays
147
+
145
148
for ( row = 0 ; row < 9 ; row ++ ) {
146
149
for ( col = 0 ; col < 9 ; col ++ ) {
147
150
if ( fullArray [ row ] [ col ] . value === null ) {
@@ -161,6 +164,7 @@ function buildPrinterString(fullArray){
161
164
162
165
}
163
166
//console.log ("set becomes: " + set);
167
+ unsolvedArraySize = unsolvedArraySize + set ;
164
168
var space = set ;
165
169
printableArray . push ( space ) ;
166
170
}
@@ -172,6 +176,8 @@ function buildPrinterString(fullArray){
172
176
} //close for
173
177
} //close for
174
178
printer ( printableArray ) ;
179
+ console . log ( "Total length of all posssibles arrays is: " + ( - 1 * unsolvedArraySize ) ) ;
180
+
175
181
} ; // close final
176
182
177
183
// PREVIOUS VERSION OF BUILD PRINTER STRING - DELETE
@@ -217,18 +223,14 @@ function checkCol (row,col, fullArray){
217
223
//iterate through possibles array and delete the toCheck element from possibles array
218
224
function deletePossibles ( toCheck , possiblesList ) {
219
225
220
-
221
226
if ( possiblesList . indexOf ( toCheck ) > - 1 ) {
222
227
for ( var i = 0 ; i < possiblesList . length ; i ++ ) {
223
228
if ( possiblesList [ i ] === toCheck ) {
224
229
if ( possiblesList . length < 2 ) {
225
230
console . log ( 'ERROR CHECKER WORKED ___________________ ON SQUARE ' ) ;
226
231
227
-
228
232
//console.log(arrayDepot[0][0]['possibles']);
229
233
230
-
231
-
232
234
/// Temp comment out - go to first in
233
235
//findOptions(arrayDepot.shift());
234
236
@@ -248,6 +250,16 @@ function deletePossibles(toCheck, possiblesList){
248
250
} ;
249
251
} ;
250
252
253
+ // // IN DEVELOPMENT - A FUNCTION TO PICK SMALLEST POSSIBLE ARRAY COUNT ARRAY?
254
+ // function selectBestFromArrayDepot(arrayDepot){
255
+ // for (i=0; i<arrayDepot.length; i++)
256
+ // for (row=0; row<9; row++) {
257
+ // for (col=0; col<9; col++) {
258
+ // if (fullArray[row][col].value <0 {
259
+ // sumPossibles=sumPossibles + (fullArray[row][col].possibles;
260
+
261
+ // };
262
+
251
263
252
264
function boxDeletePossibles ( possiblesList , callback ) {
253
265
var array = callback ;
0 commit comments