main_templates4/knight4.scala
author Christian Urban <christian.urban@kcl.ac.uk>
Sat, 11 Mar 2023 23:09:51 +0000
changeset 465 8ce150207792
parent 432 de701b64a4e0
permissions -rw-r--r--
updated to scala 3

// Part 4 about finding a single tour on "mutilated" chessboards
//==============================================================

object M4d { 

// !!! Copy any function you need from file knight1.scala !!!
// !!! or knight2.scala or knight3.scala                  !!! 
//
// If you need any auxiliary function, feel free to 
// implement it, but do not make any changes to the
// templates below.

type Pos = (Int, Int)
type Path = List[Pos]

def print_board(dim: Int, path: Path): Unit = {
  println()
  for (i <- 0 until dim) {
    for (j <- 0 until dim) {
      print(f"${path.reverse.indexOf((i, j))}%4.0f ")
    }
    println()
  } 
}

// ADD YOUR CODE BELOW
//======================

// (10)
def one_tour_pred(dim: Int, path: Path, n: Int, pred: Pos => Boolean): Option[Path] = ???


}