46 // 1 mark |
46 // 1 mark |
47 |
47 |
48 def legal_moves(dim: Int, path: Path, x: Pos): List[Pos] = |
48 def legal_moves(dim: Int, path: Path, x: Pos): List[Pos] = |
49 moves(x).filter(is_legal(dim, path, _)) |
49 moves(x).filter(is_legal(dim, path, _)) |
50 |
50 |
|
51 |
|
52 |
51 // testcases |
53 // testcases |
52 //assert(legal_moves(8, Nil, (2,2)) == |
54 //assert(legal_moves(8, Nil, (2,2)) == |
53 // List((3,4), (4,3), (4,1), (3,0), (1,0), (0,1), (0,3), (1,4))) |
55 // List((3,4), (4,3), (4,1), (3,0), (1,0), (0,1), (0,3), (1,4))) |
54 //assert(legal_moves(8, Nil, (7,7)) == List((6,5), (5,6))) |
56 //assert(legal_moves(8, Nil, (7,7)) == List((6,5), (5,6))) |
55 //assert(legal_moves(8, List((4,1), (1,0)), (2,2)) == |
57 //assert(legal_moves(8, List((4,1), (1,0)), (2,2)) == |
56 // List((3,4), (4,3), (3,0), (0,1), (0,3), (1,4))) |
58 // List((3,4), (4,3), (3,0), (0,1), (0,3), (1,4))) |
57 //assert(legal_moves(8, List((6,6)), (7,7)) == List((6,5), (5,6))) |
59 //assert(legal_moves(8, List((6,6)), (7,7)) == List((6,5), (5,6))) |
|
60 //assert(legal_moves(8, Nil, (0,1)) == List((1,3), (2,2), (2,0))) |
58 //assert(legal_moves(1, Nil, (0,0)) == List()) |
61 //assert(legal_moves(1, Nil, (0,0)) == List()) |
59 //assert(legal_moves(2, Nil, (0,0)) == List()) |
62 //assert(legal_moves(2, Nil, (0,0)) == List()) |
60 //assert(legal_moves(3, Nil, (0,0)) == List((1,2), (2,1))) |
63 //assert(legal_moves(3, Nil, (0,0)) == List((1,2), (2,1))) |
61 |
64 |
62 // 2 marks |
65 // 2 marks |