新しい論理パズルも解いてみました。
問題->https://twitter.com/puzzlegiver_bot (2017.10.15)
論理パズル3
複数解が出ますが正解はどうなんでしょう。
solve:-permutation([_:(1,1),_:(1,2),_:(1,3),_:(2,1),_:(2,2),_:(2,3)],L),
L=[a:(AX,AY),e:(EX,EY),h:(HX,HY),k:(KX,KY),r:(RX,RY),y:(YX,YY)], % (人:階,並び)
HY<KY,(EX=\=RX;(abs(EY-RY,N1),N1=\=1)),AX=:=HX,RY>EY,YY=1,(RX=\=HX;(abs(RY-HY,N2),N2=\=1)),
write(L),write("\n"),fail.
%solve.
論理パズル8
cal([],N,N).
cal([H|T],N,R):-H=_:G,(G==t->N1 is N+1;N1=N),cal(T,N1,R).
res:-L=[a:A,b:B,c:C,d:D,e:E,f:F],maplist(g,L),
not((D==t,E==t)),not((C==f,A==f)),cal(L,0,N),not(N=:=4),
not((D==f;C==f)),not((B==t,D==t)),not(N=:=2),not((A==t;B==t)),
disp(L,[],[]),!.
disp([],T,F):-write("good"),write(T),write("bad"),write(F).
disp([H|L],T,F):-H=P:G,(G==t->(T1=[P|T],F1=F);(T1=T,F1=[P|F])),disp(L,T1,F1).
g(_:t).
g(_:f).
%res.
2017.10.17追加
%虫食い算1
ans1:-L=[V,X,Y,Z],maplist(between(0,9),L),Y=\=0,A1 is V*100+V*10+Z,A1=:=(30+V)*X,
A2 is Y*10*(30+V),A2=:=V*1000+560,A1+A2=:=V*1000+X*100+Y*10+Z,
write(L),!. %丸、三角、四角、星の順
%論理パズル7
count(_,[],0).
count(X,[H|T],N):-count(X,T,N1),(H=:=X->N is N1+1;N=N1).
ans2:-L0=[X1,X2,X3,X4,X5,X6],L1=[1,1,2,3,4,5,5],maplist(between(1,5),L0),X6=:=X1-X5,
append(L0,L1,L2),findall(N,(between(1,5,X),count(X,L2,N)),L3),
reverse(L0,[H|T]),reverse(T,L4),L4==L3,
write(L0). % 1の数から順に