be given the value all others are to be marked free var harray nn of integer(adens _knightstour *dxdyarray of integerprocedure canbedone (uviinteger)booleanvar donebooleanbegin [uv:itrynextmove(uvidone)if ~done then [uv: endreturn done end canbedoneprocedure trynextmove (xyiintegervar doneboolean)var eosbooleanuvintegerkintegerprocedure next (var eosbooleanvar uvinteger)begin repeat inc( )if then : dx[ ] : dy[kenduntil ( or (( < ( ( < ( ( [uv ))eos :( end nextprocedure first (var eosbooleanvar uvinteger)begin eos :falsek :- next(eosuvend firstbegin if nsqr then first(eosuv)while ~eos ~canbedone(uvi+ do next(neosuvenddone :~eos else done :true endend trynextmoveprocedure clearvar ijintegerbegin for : to - do for : to - do [ , : end end end clearprocedure knightstour ( integervar doneboolean)begin clearh[ , : trynextmove( done)end knightstourtable indicates solutions obtained with initial positions for and for