At L çizer bilindiği gibi, bu kodda başlangıç koordinatı $(0,0)$ olmak üzere, at o noktadan harekete başlıyor ve her bir kareye tam 1 kere uğramak zorunda. Bu mümkün mü, mümkünse bu tur nasıl tamamlanır?
Bunun kodu yazılırken dikkat edilmesi gereken, atın satranç tahtasının dışına çıkmaması gerektiğidir, diğer göz önünde bulundurulması gereken bir husus, atın o kareyi daha önce ziyaret etmiş olup olmadığıdır. Eğer ziyaret ettiyse, geriye salınması gerekir. ($Backtracking$)
$Moves$ adlı dizi, atın nasıl hareket ettiğini tutuyor.
$moves=[(1,2),(-1,2),(2,1),(2,-1),(-2,-1),(1,-2),(-1,-2),(-2,1)]$
$visited$ adlı dizi ise, karelerin ziyaret edilip edilmediği bilgisini tutuyor, ilk durumda, hiçbiri ziyaret edilmemiş, bu yüzden $False$, ziyaret edildiğinde $True$ olacak.
$visited=[[False]*N for i in range(N)]$
Örnek bir hareket, başlangıç noktası $(0,0)$ olmak üzere, $(x,y)$ şeklinde, $x$ yatay ve $y$ düşey hareket var. İlk hareket, $(2,1)$, yani sağa $2$ kare ve alta $1$ kare gidiyor demek.
İkinci hareket aşağıdaki listeye göre, $(2,-1)$, bu da $2$ birim sağ ve $1$ birim yukarıya demek. Listenin 3. elemanı, $(-1,2)$, bu da atın kaldığı yerden $1$ birim sola ve $2$ birim alta sallanması demek, bu şekilde listenin tamamı uygulanarak bir yol bulunmuş olur. Tabii bunu yaparken o hücreye daha önce ziyaret edilmiş mi edilmemiş mi bakılıyor. Ziyaret edildiyse, geriye dallanma yapıyor, oradan başka çözüm arıyor.
[(2, 1), (2, -1), (-1, 2), (-1, -2), (-2, 1), (1, 2), (2, 1), (1, -2), (-1, -2), (-2, 1),
(-1, 2), (2, -1), (2, -1), (-1, 2), (-2, 1), (-1, -2), (1, -2), (2, 1), (1, 2), (-2, 1),
(-1, -2), (-1, 2), (2, -1), (2, 1)]
Bu yukarıdaki liste gibi 304 adet liste var atın hareket ettiği.