>>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).