いろんな言語で宿題 第四編

このエントリーをはてなブックマークに追加
472デフォルトの名無しさん
>>464
% Prolog (その二)

勝ちパターン([[○,○,○],_,_]).
勝ちパターン([_,[○,○,○],_]).
勝ちパターン([_,_,[○,○,○]).
勝ちパターン([[○,_,_],[○,_,_],[○,_,_]]).
勝ちパターン([[_,○,_],[_,○,_],[_,○,_]]).
勝ちパターン([[_,_,○],[_,_,○],[_,_,○]]).
勝ちパターン([[○,_,_],[_,○,_],[_,_,○]]).
勝ちパターン([[_,_,○],[_,○,_],[○,_,_]]).
勝ちパターン([[×,×,×],_,_]).
勝ちパターン([_,[×,×,×],_]).
勝ちパターン([_,_,[×,×,×]).
勝ちパターン([[×,_,_],[×,_,_],[×,_,_]]).
勝ちパターン([[_,×,_],[_,×,_],[_,×,_]]).
勝ちパターン([[_,_,×],[_,_,×],[_,_,×]]).
勝ちパターン([[×,_,_],[_,×,_],[_,_,×]]).
勝ちパターン([[_,_,×],[_,×,_],[×,_,_]]).

ならびの位置指定置換(1,A,[_|R],[A|R]) :- !.
ならびの位置指定置換(N,A,[B|R1],[B|R2]) :-
    integer(N),N1 is N - 1,
    ならびの位置指定置換(N1,A,R1,R2).
ならびの位置指定置換([],A,L,L).
ならびの位置指定置換([Nth|R],A,L1,L) :-
    ならびの位置指定置換(Nth,A,L1,L2),
    ならびの位置指定置換(R,A,L2,L).