10/01/06 10:09:29
>>116
% Prolog データ入力部分は省略
カードの合計が一致するまででたらめにN回以内交換する(0,_,_,_,_,[]) :- !,fail.
カードの合計が一致するまででたらめにN回以内交換する(N,AL,BL,AL,BL,[]) :-
加算(AL,Sum1),
加算(BL,Sum2),
Sum1 = Sum2.
カードの合計が一致するまででたらめにN回以内交換する(N,AL,BL,X,Y,[[A,B,AL,BL]|Z]) :-
RA is (random mod 3) + 1,
RB is (random mod 3) + 1,
ならびの回転(左方向,RA,AL,[A|R1]),
ならびの回転(左方向,RB,BL,[B|R2]),
N1 is N - 1,
カードの合計が一致するまででたらめにN回以内交換する(N1,[B|R1],[A|R2],X,Y,Z).