私は、JavaScript を使用して Tic Tac Toe ゲームを作成し、自分のターンでランダムなボックスを選択する AI を作成しました。ただし、同じボックスを 2 回選択したり、プレイヤー (X) が選択したボックスを選択したりすることもあります。コードは次のとおりです。
<!DOCTYPE html>
<html>
<body>
<input type="button" id="k1" value=" " onclick="tictactoe(this)">
<input type="button" id="k2" value=" " onclick="tictactoe(this)">
<input type="button" id="k3" value=" " onclick="tictactoe(this)">
<br />
<input type="button" id="k4" value=" " onclick="tictactoe(this)">
<input type="button" id="k5" value=" " onclick="tictactoe(this)">
<input type="button" id="k6" value=" " onclick="tictactoe(this)">
<br />
<input type="button" id="k7" value=" " onclick="tictactoe(this)">
<input type="button" id="k8" value=" " onclick="tictactoe(this)">
<input type="button" id="k9" value=" " onclick="tictactoe(this)">
<br />
<script>
var nummoves=0;
var nummoves1=1;
var nummoves2=2;
var nummoves3=3;
var nummoves4=4;
var nummoves5=5;
var nummoves6=6;
var nummoves7=7;
var nummoves8=8;
var nummoves9=9;
var comp;
function tictactoe(square)
{
var check=["c1","c2","c3","c4","c5","c6","c7","c8","c9"]
check[0]=document.getElementById("k1");
check[1]=document.getElementById("k2");
check[2]=document.getElementById("k3");
check[3]=document.getElementById("k4");
check[4]=document.getElementById("k5");
check[5]=document.getElementById("k6");
check[6]=document.getElementById("k7");
check[7]=document.getElementById("k8");
check[8]=document.getElementById("k9");
comp=check[Math.floor(Math.random()*check.length)];
if(nummoves==0)
{
square.value="X";
}
if(nummoves1==1)
{
comp.value="O";
}
if(nummoves2==2)
{
square.value="X";
}
if(nummoves3==3)
{
comp.value="O";
}
if(nummoves4==4)
{
square.value="X";
}
if(nummoves5==5)
{
comp.value="O";
}
if(nummoves6==6)
{
square.value="X";
}
if(nummoves7==7)
{
comp.value="O";
}
if(nummoves8==8)
{
square.value="X";
}
if(nummoves9==9)
{
comp.value="O";;
}
}
</script>
</body>
</html>
では、AI が空のボックスを選択することだけを認識できるように、このコードを (完全ではありませんが!) どのように変更すればよいでしょうか?
また、巧妙な AI を作成することもできます。たとえば、プレーヤーが 3 列に並ぶのをブロックしたり、3 列に並んだりすることさえできます。