<script src="miyama3.js" type="text/javascript"></script> |
<script type="text/javascript"> Init(); //Check(); Play(); </script> |
// マウスクリック
function Click(id)
{
//window.alert(id);
var y = Math.floor(id/20)+1;
var n = id%20;
P[y] = n;
location.href = "miyama3.html?P0=-1" + "&P1=" + P[1] + "&P2=" + P[2] + "&P3=" + P[3];
}
|
| P[0]の値 | 説明 |
|---|---|
| P[0]==0 | 山に石を設定する |
| P[0]==1 | プレイヤーの手番 |
| P[0]==-1 | コンピュータの手番 |
// プレイ関数
function Play()
{
・・・
if (P[0] == -1)
{ // コンピュータがプレイする
rc = Think();
switch(rc)
{ case -1: //コンピュータの勝ち
document.write('私の勝ちです\(^o^)/<br>');
document.write('<form action="miyama3.html" method="get">');
document.write('<input type="hidden" name="P0" value=0>');
document.write('<input type="submit" value="確認">');
document.write('</form>');
break;
case 1: //コンピュータの負け
document.write('私の負けです(^_^;)');
document.write('<form action="miyama3.html" method="get">');
document.write('<input type="hidden" name="P0" value=0>');
document.write('<input type="submit" value="確認">');
document.write('</form>');
break;
default: //プレイの確認
Stone(P[1]);
Stone(P[2]);
Stone(P[3]);
document.write('<form action="miyama3.html" method="get">');
document.write('<input type="hidden" name="P0" value=1>');
document.write('<input type="hidden" name="P1" value=',P[1],'>');
document.write('<input type="hidden" name="P2" value=',P[2],'>');
document.write('<input type="hidden" name="P3" value=',P[3],'>');
document.write('<input type="submit" value="私のプレイを確認">');
document.write('</form>');
break;
}
}
}
|
// コンピュータが考える
function Think()
{
var n1; //石が残っている山の数
var n2; //石が一個だけの山の数
var mx; //石が一番多い山の番号
var flag; //設定済みフラグ
n1 = 0;
n2 = 0;
mx = 0;
flag = 0;
for(i=1; i<4; i++)
{ if (P[i]>0)
{ n1++;
if (P[i]==1) n2++;
if (P[i]>P[mx]) mx= i;
}
}
switch(n1)
{
case 0: //三個の山が空(コンピュータの勝ち)
return -1;
case 1: //石が残っている山は一個
if (n2==1) return 1; //最後の石(コンピュータの負け)
P[mx]= 1; //一個を残して全て取り除く
flag = 1;
break;
case 2: //石が残っている山は二個
if (n2==1)
{ P[w]= 0; //最後の一個を残す
flag = 1;
}
break;
case 3: //石が残っている山は三個
if (n2==2)
{ P[mx]= 1; //1,1,1 に設定
flag = 1;
}
break;
}
if (flag == 1) return 0;
var w = P[1]^P[2]^P[3];
for(i=1; i<4; i++)
{ n= P[i]^w;
if (n<P[i]) break;
}
if (i>3 || Math.random()<0.1) //1割の確率でミスをする
{ P[mx]--;
return 0;
}
P[i]= n;
return 0;
}
|
![]()