|  | @@ -71,7 +71,7 @@ fn main() {
 | 
	
		
			
				|  |  |          let result = load_ksudoku(filename.to_path_buf());
 | 
	
		
			
				|  |  |          if result.is_err() {
 | 
	
		
			
				|  |  |              println!("Failed to load file: {}", filename.display());
 | 
	
		
			
				|  |  | -            // Safe to unrap error.
 | 
	
		
			
				|  |  | +            // Safe to unwrap error.
 | 
	
		
			
				|  |  |              println!("{:?}", result.unwrap_err());
 | 
	
		
			
				|  |  |              return;
 | 
	
		
			
				|  |  |          }
 | 
	
	
		
			
				|  | @@ -104,19 +104,42 @@ fn main() {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          let result = solution.load_from_tld('b', '_', &puzzle.solution);
 | 
	
		
			
				|  |  |          if result.is_err() {
 | 
	
		
			
				|  |  | -            panic!("Failed loading result: {}", result.unwrap_err());
 | 
	
		
			
				|  |  | +            panic!("Failed loading solution: {}", result.unwrap_err());
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          if args.get_flag("brute") {
 | 
	
		
			
				|  |  |              let (found, solutions) = s.brute_force_solver(2);
 | 
	
		
			
				|  |  |              println!("Solutions: {}", found);
 | 
	
		
			
				|  |  |              if found != 0 {
 | 
	
		
			
				|  |  | +                solutions[0].display();
 | 
	
		
			
				|  |  |                  if solutions[0] != solution {
 | 
	
		
			
				|  |  |                      println!("The solution doesn't match the one from the file:");
 | 
	
		
			
				|  |  |                      solution.display();
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          } else {
 | 
	
		
			
				|  |  | +            let mut solver = AnySolver::new_from(&s);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            while solver.solve_logic() {};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            if solver.board.complete() {
 | 
	
		
			
				|  |  | +                println!("Solution:");
 | 
	
		
			
				|  |  | +                solver.board.display();
 | 
	
		
			
				|  |  | +            } else {
 | 
	
		
			
				|  |  | +                println!("This is as far as logic could get us:");
 | 
	
		
			
				|  |  | +                solver.board.display();
 | 
	
		
			
				|  |  | +                println!("Using brute-force.");
 | 
	
		
			
				|  |  | +                let (count, boards) = solver.board.brute_force_solver(2);
 | 
	
		
			
				|  |  | +                if count == 1 {
 | 
	
		
			
				|  |  | +                    boards[0].display();
 | 
	
		
			
				|  |  | +                    if boards[0] != solution {
 | 
	
		
			
				|  |  | +                        println!("The solution doesn't match the one from the file:");
 | 
	
		
			
				|  |  | +                        solution.display();
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                } else {
 | 
	
		
			
				|  |  | +                    println!("Found {} solutions.", count);
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  |              /*
 | 
	
		
			
				|  |  |              while s.solve(debug) {
 | 
	
		
			
				|  |  |                  println!("Try it again...");
 |