ゲーム

(<HTML>
<HEAD>
<TITLE>オセロ</TITLE>
<SCRIPT language="JavaScript">
var count_kuro; var count_siro; //盤上のそれぞれの石数
var siro_pass; var kuro_pass; //パスフラグ
var tysen=1; //デモ:1、 対人間:2
var gspeed; //wait時間(処理速度)
var hspeed=200; //反転スピード
var yusen=new Array(60); //白の優先順の場所
yusen[0] =0; yusen[1] =7; yusen[2]=63; yusen[3]=56; yusen[4]=19;
yusen[5]=20; yusen[6]=29; yusen[7]=37; yusen[8]=44; yusen[9]=43;
yusen[10]=34;yusen[11]=26;yusen[12]=21;yusen[13]=45;yusen[14]=42;
yusen[15]=18;yusen[16]=11;yusen[17]=12;yusen[18]=30;yusen[19]=38;
yusen[20]=52;yusen[21]=51;yusen[22]=33;yusen[23]=25;yusen[24] =3;
yusen[25] =4;yusen[26]=31;yusen[27]=39;yusen[28]=60;yusen[29]=59;
yusen[30]=32;yusen[31]=24;yusen[32]=17;yusen[33]=10;yusen[34]=13;
yusen[35]=22;yusen[36]=46;yusen[37]=53;yusen[38]=50;yusen[39]=41;
yusen[40] =2;yusen[41] =5;yusen[42]=23;yusen[43]=47;yusen[44]=61;
yusen[45]=58;yusen[46]=40;yusen[47]=16;yusen[48] =1;yusen[49] =6;
yusen[50]=15;yusen[51]=55;yusen[52]=62;yusen[53]=57;yusen[54]=48;
yusen[55] =8;yusen[56] =9;yusen[57]=14;yusen[58]=54;yusen[59]=49;
var ikuro=new Array(60); //黒の優先順の場所
ikuro[0]=56; ikuro[1]=63; ikuro[2] =7; ikuro[3] =0; ikuro[4]=43;
ikuro[5]=44; ikuro[6]=37; ikuro[7]=29; ikuro[8]=20; ikuro[9]=19;
ikuro[10]=26;ikuro[11]=34;ikuro[12]=45;ikuro[13]=21;ikuro[14]=18;
ikuro[15]=42;ikuro[16]=59;ikuro[17]=60;ikuro[18]=39;ikuro[19]=31;
ikuro[20] =4;ikuro[21] =3;ikuro[22]=24;ikuro[23]=32;ikuro[24]=58;
ikuro[25]=61;ikuro[26]=47;ikuro[27]=23;ikuro[28] =5;ikuro[29] =2;
ikuro[30]=16;ikuro[31]=40;ikuro[32]=51;ikuro[33]=52;ikuro[34]=38;
ikuro[35]=30;ikuro[36]=12;ikuro[37]=11;ikuro[38]=25;ikuro[39]=33;
ikuro[40]=53;ikuro[41]=46;ikuro[42]=22;ikuro[43]=13;ikuro[44]=10;
ikuro[45]=17;ikuro[46]=41;ikuro[47]=50;ikuro[48]=57;ikuro[49]=62;
ikuro[50]=55;ikuro[51]=15;ikuro[52] =6;ikuro[53] =1;ikuro[54] =8;
ikuro[55]=48;ikuro[56]=49;ikuro[57]=54;ikuro[58]=14;ikuro[59] =9;
var siro=1; var kuro=2; var clickok; var x; var y; var ino; var iro;
var up_left; var upp; var down; var left; var rgt; var up_rgt;
var down_left; var down_rgt;
var haichi = new Array();
for(i=0;i<64;i++){haichi[i]=0}
haichi[27]=haichi[36]=siro; haichi[28]=haichi[35]=kuro;
drawishi = new Array();
drawishi[0]=new Image();drawishi[0].src="haikei.gif";
drawishi[1]=new Image();drawishi[1].src="siro.gif";
drawishi[2]=new Image();drawishi[2].src="kuro.gif";
drawishi[3]=new Image();drawishi[3].src="hanten.gif";

function g_start(){
var i;
siro_pass=kuro_pass=0;
gspeed=document.form1.tspeed.value;
if(gspeed < 0) gspeed=0;
if(gspeed > 9000) gspeed=9000;
for(i=0;i<64;i++){
if(haichi[i]!==0){
if(i==27 || i==36)
{haichi[i]=siro;document.images[i].src=drawishi[siro].src;
}else{
if(i==28 || i==35)
{haichi[i]=kuro;document.images[i].src=drawishi[kuro].src;
}else{
haichi[i]=0;document.images[i].src=drawishi[0].src;
};
};
};
};
clickok=2;
document.form1.info.value="黒の番";
if (tysen==1){
settei_kuro(kuro);
};
};

function Main_Sub(){
var i1;
count_kuro=count_siro=0;
for(i1=0;i1<=63;i1++){
if(haichi[i1]==kuro){count_kuro++};
if(haichi[i1]==siro){count_siro++};
};
document.form1.kuro.value=count_kuro;
document.form1.siro.value=count_siro;
siro_pass=1;
for (i1=0;i1<=63;i1++){
ino=i1; x=ino%8; y=(ino-x)/8;
flg=getck(x,y,siro);
if (flg != 0 ){siro_pass=0; break;};
};
kuro_pass=1;
for (i1=0;i1<=63;i1++){
ino=i1; x=ino%8; y=(ino-x)/8;
flg=getck(x,y,kuro);
if (flg != 0 ){kuro_pass=0; break;};
};
if (kuro_pass==1 && siro_pass==1) {
gamesett(); return;
}
if(count_kuro+count_siro==64 || count_kuro==0 || count_siro==0){
gamesett(); return;
}else{
if(clickok==1){
if(siro_pass==0){
document.form1.info.value="コンピュータの番(考え中)";
setTimeout('settei(siro)',gspeed);
}else{
clickok=2;
document.form1.info.value="白はパスです。黒の番";
if (tysen==1) setTimeout('settei_kuro(kuro)',gspeed);
};
}else{
if(kuro_pass==0){
document.form1.info.value="黒の番";
if (tysen==1) setTimeout('settei_kuro(kuro)',gspeed);
}else{
clickok=1;
document.form1.info.value="黒はパスです。白の番";
setTimeout('settei(siro)',gspeed);
};
};
};
};
function getck(x,y,irono){
var iflg;
up_left=ck_ok(x,y,-1,-1,irono); //上左方向
left=ck_ok(x,y,-1,0,iro); //左方向
down_left=ck_ok(x,y,-1,1,irono); //下左方向
down=ck_ok(x,y,0,1,irono); //下方向
down_rgt=ck_ok(x,y,1,1,irono); //下右方向
rgt=ck_ok(x,y,1,0,irono); //右方向
up_rgt=ck_ok(x,y,1,-1,irono); //上右方向
upp=ck_ok(x,y,0,-1,irono); //上方向
iflg=upp+down+left+rgt+up_
最終更新:2012年05月23日 13:53