Knight's tour: Difference between revisions

Content added Content deleted
No edit summary
Line 3,587: Line 3,587:
integer :: warnsdorff_numbers(1:8)
integer :: warnsdorff_numbers(1:8)
integer :: number_of_unpruned_squares
integer :: number_of_unpruned_squares
integer :: least_warnsdorff_number
integer :: i
integer :: i


Line 3,606: Line 3,605:
!
!
number_of_unpruned_squares = 0
number_of_unpruned_squares = 0
least_warnsdorff_number = 100
unvisited_moves = unvisited_knight_moves (path)
unvisited_moves = unvisited_knight_moves (path)
do i = 1, unvisited_moves%number_of_squares
do i = 1, unvisited_moves%number_of_squares
Line 3,619: Line 3,617:
unpruned_squares(number_of_unpruned_squares) = unvisited_moves%squares(i)
unpruned_squares(number_of_unpruned_squares) = unvisited_moves%squares(i)
warnsdorff_numbers(number_of_unpruned_squares) = next_moves%number_of_squares
warnsdorff_numbers(number_of_unpruned_squares) = next_moves%number_of_squares
least_warnsdorff_number = &
& min (least_warnsdorff_number, next_moves%number_of_squares)
end if
end if
end do
end do
Line 3,658: Line 3,654:
character(2), intent(in) :: starting_square
character(2), intent(in) :: starting_square


logical :: solution_found
type(path_t) :: path
type(path_t) :: path