nachbar(20, [18, 16, 14, 12, 10, 8, 6, 4, 2]). nachbar(19, [17, 16, 13, 11, 9, 7, 6, 3, 1]). nachbar(18, [20, 15, 14, 13, 12, 11, 5, 4, 2]). nachbar(17, [19, 16, 15, 12, 10, 8, 7, 3, 1]). nachbar(16, [20, 19, 17, 14, 10, 9, 8, 6, 3]). nachbar(15, [18, 17, 13, 12, 10, 7, 5, 2, 1]). nachbar(14, [20, 18, 16, 11, 9, 8, 6, 4, 2]). nachbar(13, [19, 18, 15, 11, 9, 7, 5, 4, 1]). nachbar(12, [20, 18, 17, 15, 10, 8, 7, 5, 2]). nachbar(11, [19, 18, 14, 13, 9, 6, 5, 4, 1]). nachbar(10, [20, 17, 16, 15, 12, 8, 7, 3, 2]). nachbar( 9, [19, 16, 14, 13, 11, 6, 4, 3, 1]). nachbar( 8, [20, 17, 16, 14, 12, 10, 6, 3, 2]). nachbar( 7, [19, 17, 15, 13, 12, 10, 5, 3, 1]). nachbar( 6, [20, 19, 16, 14, 11, 9, 8, 4, 3]). nachbar( 5, [18, 15, 13, 12, 11, 7, 4, 2, 1]). nachbar( 4, [20, 18, 14, 13, 11, 9, 6, 5, 2]). nachbar( 3, [19, 17, 16, 10, 9, 8, 7, 6, 1]). nachbar( 2, [20, 18, 15, 14, 12, 10, 8, 5, 4]). nachbar( 1, [19, 17, 15, 13, 11, 9, 7, 5, 3]). zug(Pos, Nachf) :- nachbar(Pos, Nachbarn), member(Nachf, Nachbarn). start :- nachbar(Startpos, _), weg([Startpos], Startpos, Loesung, Kosten), write(Loesung), nl, write(Kosten), nl, fail. weg(Ergebnis, Kosten, Pfad, Kosten) :- Kosten =< 1575, length(Ergebnis, 20), reverse(Ergebnis, Pfad). weg([P | Anfang], Kosten, Loesung, Ergebnis) :- zug(P, Nachf), \+ member(Nachf, Anfang), length(Anfang, Tiefe), KostenNeu is Kosten + Nachf*(Tiefe + 2), weg([Nachf, P | Anfang], KostenNeu, Loesung, Ergebnis).