このディレクトリの索引
#  【 課題 】マス取りゲーム 
#  【 形態 】1. Javaアプリケーション(main()で開始) 
#  【 期限 】11/27 24:00 
#  【 Ver  】"1.7.0_45" 
#  【 補足 】3×3のマスに『○』と『×』を交互に入力して9マス埋まったら終了です。 
#  勝ち負けはいりません

戦略なしマス取りゲーム(_手順) :-
戦略なしマス取りゲーム(○,[a1,a2,a3,b1,b2,b3,c1,c2,c3],_手順).

戦略なしマス取りゲーム(_手番,[],[]) :- !.
戦略なしマス取りゲーム(_手番,_残りマスならび,_手順) :-
空いたマスがあれば戦略なしマス取りゲームを続ける(_手番,_残りマスならび,_手順).

空いたマスがあれば戦略なしマス取りゲームを続ける(_手番,_残りマスならび,[[_手番,_マス]|_手順]) :-
手番がマスをひとつ取る(_手番,_残りマスならび,_次の手番,_マス,_ひとつマスを取られた残りマスならび),
戦略なしマス取りゲーム(_次の手番,_ひとつマスを取られた残りマスならび,_手順).

手番がマスをひとつ取る(_手番,_残りマスならび,_次の手番,_マス,_ひとつマスを取られた残りマスならび) :-
マスをひとつ取る(_残りマスならび,_マス),
ひとつマスを取られた残りマスならび(_マス,_残りマスならび,_ひとつマスを取られた残りマスならび),
次の手番(_手番,_次の手番).

マスをひとつ取る(_残りマスならび,_マス) :-
length(_残りマスならび,_残りマス数),
_乱順数 is random(_残りマス数),
nth0(_乱順数,_残りマスならび,_マス).

ひとつマスを取られた残りマスならび(_マス,_残りマスならび,_ひとつマスを取られた残りマスならび) :-
select(_マス,_残りマスならび,_ひとつマスを取られた残りマスならび).

次の手番(○,×).
次の手番(×,○).