- 727 名前:デフォルトの名無しさん mailto:sage [2010/02/16(火) 16:31:33 ]
- >>723
% Prolog 一枚のカードを作る/2 や トランプのようにならびを切る/4 は % nojiriko.asia/prolog/c134_683.html 参照 ペアまたはフラッシュの出現度数(_回数,_ペアの度数,_フラッシュの度数) :- findsum([M1,M2],(for(1,N,_回数),トランプの準備([A,B,C,D,E|R]),役([A,B,C,D,E],M1,M2)),[_ペアの度数,_フラッシュの度数]). 役(L,1,0) :- sort(L,L1),ペア(L1),!. 役([A|R],0,1) :- sub_atom(A,1,1,_,_種類),フラッシュ(_種類,R),!. ペア([A,B]) :- sub_atom(A,0,1,_,C),sub_atom(B,0,1,_,C),!. ペア([A,B,C|R]) :- sub_atom(A,0,1,_,E),sub_atom(B,0,1,_,E),sub_atom(C,0,1,_,E),ペア(R),!. ペア([A,B,C|R]) :- sub_atom(A,0,1,_,E),sub_atom(B,0,1,_,E),\+(sub_atom(C,0,1,_,E)),!. ペア([A|R]) :- ペア(R). フラッシュ(_,[]) :- !. フラッシュ(A,[B|R]) :- sub_atom(B,1,1,_,A),フラッシュ(A,R). トランプの準備(X) :- findall(U,(for(1,N,52),一枚のカードを作る(N,U)),_整列したカード), トランプを切るようにならびを切る(41,53,_整列したカード,X),!.
|

|