equal
deleted
inserted
replaced
|
1 // Part 2 about finding a single tour for a board using the Warnsdorf Rule |
|
2 //========================================================================= |
|
3 |
|
4 // !!! Copy any function you need from file knight1.scala !!! |
|
5 // |
|
6 // If you need any auxiliary function, feel free to |
|
7 // implement it, but do not make any changes to the |
|
8 // templates below. |
|
9 |
|
10 type Pos = (Int, Int) // a position on a chessboard |
|
11 type Path = List[Pos] // a path...a list of positions |
|
12 |
|
13 |
|
14 //(6) Complete the function that calculates a list of onward |
|
15 // moves like in (2) but orders them according to Warnsdorf’s |
|
16 // rule. That means moves with the fewest legal onward moves |
|
17 // should come first. |
|
18 |
|
19 |
|
20 //def ordered_moves(dim: Int, path: Path, x: Pos) : List[Pos] = .. |
|
21 |
|
22 |
|
23 //(7) Complete the function that searches for a single *closed* |
|
24 // tour using the ordered_moves function from (6). This |
|
25 // function will be tested on a 6 x 6 board. |
|
26 |
|
27 |
|
28 //def first_closed_tour_heuristic(dim: Int, path: Path) : Option[Path] = ... |
|
29 |
|
30 |
|
31 //(8) Same as (7) but searches for *non-closed* tours. This |
|
32 // version of the function will be called with dimensions of |
|
33 // up to 30 * 30. |
|
34 |
|
35 //def first_tour_heuristic(dim: Int, path: Path) : Option[Path] = ... |
|
36 |