Sfoglia il codice sorgente

Report if anything removed in pairs search.

Steve Thielemann 9 mesi fa
parent
commit
9f097b1f6b
1 ha cambiato i file con 27 aggiunte e 38 eliminazioni
  1. 27 38
      sudoku/src/sudoku.rs

+ 27 - 38
sudoku/src/sudoku.rs

@@ -627,18 +627,6 @@ impl Sudoku {
                                     }
                                 }
 
-                                if pair_removed {
-                                    println!(
-                                        "Pair found! {} {}: {} {:?} and {} {:?} !",
-                                        gidx,
-                                        fidx,
-                                        gpos,
-                                        xy(gpos),
-                                        fpos,
-                                        xy(fpos)
-                                    );
-                                }
-
                                 // Check the x's and y's to see if we can also process a row/column too.
                                 if xy(gpos).0 == xy(fpos).0 {
                                     // Matching X - process column
@@ -660,28 +648,20 @@ impl Sudoku {
                                             self.possible[pos(column, remove) as usize]
                                                 .set(values[0], false);
                                             found_something = true;
+                                            pair_removed = true;
                                         }
-                                        /* v
-                                            .is_some()
-                                        {
-                                            found_something = true;
-                                        };
-                                        */
+
                                         if self.possible[pos(column, remove) as usize]
                                             .get(values[1])
                                         {
                                             self.possible[pos(column, remove) as usize]
                                                 .set(values[1], false);
                                             found_something = true;
+                                            pair_removed = true;
                                         }
-                                        /*
-                                            .is_some()
-                                        {
-                                            found_something = true;
-                                        };
-                                         */
                                     }
                                 }
+
                                 if xy(gpos).1 == xy(fpos).1 {
                                     // Matching Y - process row
                                     let row = xy(gpos).1;
@@ -695,24 +675,33 @@ impl Sudoku {
                                         if (remove == xy(gpos).0) || (remove == xy(fpos).0) {
                                             continue;
                                         }
-                                        self.possible[pos(remove, row) as usize]
-                                            .set(values[0], false);
-                                        /*
-                                            .is_some()
-                                        {
+                                        if self.possible[pos(remove, row) as usize].get(values[0]) {
+                                            self.possible[pos(remove, row) as usize]
+                                                .set(values[0], false);
                                             found_something = true;
-                                        };
-                                         */
-                                        self.possible[pos(remove, row) as usize]
-                                            .set(values[1], false);
-                                        /*
-                                            .is_some()
-                                        {
+                                            pair_removed = true;
+                                        }
+
+                                        if self.possible[pos(remove, row) as usize].get(values[1]) {
+                                            self.possible[pos(remove, row) as usize]
+                                                .set(values[1], false);
                                             found_something = true;
-                                        };
-                                         */
+                                            pair_removed = true;
+                                        }
                                     }
                                 }
+
+                                if pair_removed {
+                                    println!(
+                                        "Pair found! {} {}: {} {:?} and {} {:?} !",
+                                        gidx,
+                                        fidx,
+                                        gpos,
+                                        xy(gpos),
+                                        fpos,
+                                        xy(fpos)
+                                    );
+                                }
                             }
                         }
                     }