equal
  deleted
  inserted
  replaced
  
    
    
    61       val cs = candidates(game, emptyPosition(game))  | 
    61       val cs = candidates(game, emptyPosition(game))  | 
    62       search1T(cs.map(c => update(game, empty(game), c)) ::: rest)  | 
    62       search1T(cs.map(c => update(game, empty(game), c)) ::: rest)  | 
    63     }  | 
    63     }  | 
    64   }  | 
    64   }  | 
    65 }  | 
    65 }  | 
         | 
    66   | 
         | 
    67 def pretty(game: String): String =   | 
         | 
    68   "\n" + (game.sliding(maxValue, maxValue).mkString(",\n")) | 
         | 
    69   | 
    66   | 
    70   | 
    67 // a list of hard games according to Andrew Coles and Peter Norvig  | 
    71 // a list of hard games according to Andrew Coles and Peter Norvig  | 
    68   | 
    72   | 
    69 val hard_games =   | 
    73 val hard_games =   | 
    70   List("52...6.........7.13...........4..8..6......5...........418.........3..2...87.....", | 
    74   List("52...6.........7.13...........4..8..6......5...........418.........3..2...87.....", | 
   178        ".....2.......7...17..3...9.8..7......2.89.6...13..6....9..5.824.....891..........",  | 
   182        ".....2.......7...17..3...9.8..7......2.89.6...13..6....9..5.824.....891..........",  | 
   179        "3...8.......7....51..............36...2..4....7...........6.13..452...........8..",  | 
   183        "3...8.......7....51..............36...2..4....7...........6.13..452...........8..",  | 
   180        "....14....3....2...7..........9...3.6.1.............8.2.....1.4....5.6.....7.8...",  | 
   184        "....14....3....2...7..........9...3.6.1.............8.2.....1.4....5.6.....7.8...",  | 
   181        "4.....8.5.3..........7......2.....6.....8.4......1.......6.3.7.5..2.....1.4......")  | 
   185        "4.....8.5.3..........7......2.....6.....8.4......1.......6.3.7.5..2.....1.4......")  | 
   182   | 
   186   | 
         | 
   187 println("108:\n" ++ pretty(hard_games(108).replaceAll("\\.", " ")) ++ "\n") | 
         | 
   188 println("109:\n" ++ pretty(hard_games(109).replaceAll("\\.", " ")) ++ "\n") | 
         | 
   189   | 
   183   | 
   190   | 
   184 // for measuring time  | 
   191 // for measuring time  | 
   185 def time_needed[T](i: Int, code: => T) = { | 
   192 def time_needed[T](i: Int, code: => T) = { | 
   186   val start = System.nanoTime()  | 
   193   val start = System.nanoTime()  | 
   187   for (j <- 1 to i) code  | 
   194   for (j <- 1 to i) code  |