fn abs(value: i32) -> i32 {
    if value < 0 {
        return -value
    }
    return value
}

fn knightMove(ax: i32, ay: i32, bx: i32, by: i32) -> Bool {
    let dx: i32 = abs(ax - bx)
    let dy: i32 = abs(ay - by)
    return dx == 1 && dy == 2 || dx == 2 && dy == 1
}

pub fn main(world: World) -> Void raises {
    if knightMove(0, 0, 1, 2) {
        check world.out.write("knight tour ok\n")
    }
}
