slitherlink solver algorithm