このディレクトリの索引
#  
#  与えたリストをシャッフルするshuffle/2を実装してください。
#  
#  ?- shuffle([a,b,c], X).
#  X = [b,a,c];
#  false
#  

shuffle(_元のカードの束,_切られたカードの束) :-
        length(_元のカードの束,_カードの枚数),
        length(Ln,100),
        shuffle(Ln,_カードの枚数,_元のカードの束,_切られたカードの束).

shuffle([],_,_カードの束,_カードの束) :- !.
shuffle([_|Ln],_カードの枚数,_カードの束1,_カードの束) :-
        shuffle(_カードの枚数,_カードの束1,_カードの束2),
        shuffle(Ln,_カードの枚数,_カードの束2,_カードの束).

shuffle(_カードの枚数,_カードの束1,_カードの束2) :-
        _乱数値 is random(_カードの枚数),
        length(L0,_乱数値),
        append(L0,L1,_カードの束1),
        append(L1,L0,_カードの束2).