diff -r 20f02c5ff53f -r a2c4c6bf319d templates3-bak/knight3.scala --- a/templates3-bak/knight3.scala Fri Apr 26 17:29:30 2024 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,33 +0,0 @@ -// Part 3 about finding a single tour using the Warnsdorf Rule -//============================================================= - -// copy any function you need from files knight1.scala and -// knight2.scala - -object CW7c { - -type Pos = (Int, Int) // a position on a chessboard -type Path = List[Pos] // a path...a list of positions - -//(3a) Complete the function that calculates a list of onward -// moves like in (1b) but orders them according to Warnsdorf’s -// rule. That means moves with the fewest legal onward moves -// should come first. - -//def ordered_moves(dim: Int, path: Path, x: Pos) : List[Pos] = .. - - -//(3b) Complete the function that searches for a single *closed* -// tour using the ordered moves function. - -//def first_closed_tour_heuristic(dim: Int, path: Path) : Option[Path] = ... - - -//(3c) Same as (3b) but searches for *non-closed* tours. However, -// you have to be careful to write a tail-recursive version as this -// function will be called with dimensions of up to 40 * 40. - -//def first_tour_heuristic(dim: Int, path: Path) : Option[Path] = ... - - -}