Я пытаюсь сделать Башни Ханоя проблемы, что я пытался до сих пор:Hanoi Tower (Башни Ханоя)
move(1,[H|T],B,C,A1,B1,C) :-
A1 = T,
B1 = [H|B].
move(N,A,B,C,A1,B1,C) :-
N>1,
M is N-1,
move(M,[H|T],C,B,A1,B1,C),
move(1,[H|T],B,_,A1,B1,C),
move(M,C,B,[H|T],A1,B1,C).
но этот код не работает, мне нужно получить результат выглядит например:
?-move(3,[1,2,3],[],[],A1,B1,C).
and the results:
A1=[].
B1=[1,2,3]
C=[].
Может кто-нибудь помочь мне исправить мой код и получить такой результат? Это очень важно для меня, мне очень нужна помощь. это то, что я сделал, но с некоторыми проблемами:
move(N,[H|T],[],[],A1,B1,C) :-
N > 1,
M is N - 1,
move(N,[H|M],[H|_],[],A1,B1,C),
move(M,[_|M],[H|_],[H|_],A1,B1,C),
move(M,[_|M],[],[H|T],A1,B1,C),
move(M,[],[_|T],[H|T],A1,B1,C),
move(M,[H|_],[_|T],[H|T],A1,B1,C),
move(M,[H|_],[_|T],[],A1,B1,C),
move(M,[],[H|T],[],A1,B1,C).
move(N,[H|T],[],[]) :- write(A1), nl,
write(B1), nl,
write(C).
извините, я помечать это неправильно, это не домашнее задание, это один вопрос прошлого экзамена. если вы можете дать мне полные ответы, у меня есть экзамен на следующей неделе. извините за это – user1400451
@ user1400451 обновлено для полного ответа –
i youht я могу использовать свой путь, но я не знаю, где не так, потому что я просто следую инструкциям, чтобы написать код – user1400451