いろんな言語で宿題ス ..
486:デフォルトの名無しさん
09/07/17 00:10:16
| ?- search(hanoi,S,G,P,A).
:- [search].
/* 初期状態と目標状態 これは、2枚のハノイ */
initial_state(hanoi, [[1,2,3],[],[]]).
goal_state(hanoi, [[],[],[1,2,3]]).
%------------------ ハノイの塔
operator(hanoi, left_to_right(Disk), [[Disk|RestA], B, C], [RestA, B, [Disk|C]]) :-
con2(Disk, C).
operator(hanoi, left_to_center(Disk), [[Disk|RestA], B, C], [RestA, [Disk|B], C]) :-
con2(Disk, B). % 移動先で制約2を満たしていることをチェック
operator(hanoi,center_to_left(Disk), [A, [Disk|RestB], C], [[Disk|A], RestB, C]) :-
con2(Disk, A).
operator(hanoi, center_to_right(Disk), [A, [Disk|RestB], C], [A, RestB, [Disk|C]]) :-
con2(Disk, C).
%-- 制約2
% 一番上にあるディスクよりも、小さいことを検査
/* ?- con2(2, [1,3]).
?- con2(1, [2,3]). */
コレを完成させるにはどうすればいいのでしょうか?
次ページ続きを表示1を表示最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4630日前に更新/314 KB
担当:undef