class sho{
koma:string[]=new Array();
pos:number[]=new Array();
hand:string[]=new Array();
ban:number[]=new Array();
dx:number[]=new Array();
dy:number[]=new Array();
number_dir:number;
mode:string;
koma_sel:number[]=new Array();
number_sel:number;
pos_move:number[]=new Array();
hand_move:string[]=new Array();
number_move:number;
move():void{
var s:number;
var sx:number;
this.select();
var x1:number;
var y1:number;
var s1:number;
var s2:number;
var p1:number;
var p2:number;
var sig:number[]=new Array();
var sigx:number[]=new Array();
var number_sig:number;
var n:number;
var posx:number[]=new Array();
var pos_ch:number[]=new Array();
var hand_ch:string[]=new Array();
var ch:number;
n=0;
for(s=1;s<this.number_sel+1;s++){
s1=this.koma_sel[s];
this.makedir(this.hand[s1],this.koma[s1]);
p1=this.pos[s1];
for(sx=1;sx<this.number_dir+1;sx++){
x1=this.ban[p1][0]+this.dx[sx];
y1=this.ban[p1][1]+this.dy[sx];
p2=this.point(x1,y1);
if(p2>0)n=n+1;
if(p2>0)sig[n]=s1;
if(p2>0)sigx[n]=p2;
}
}
number_sig=n;
this.number_move=0;
for(s=1;s<number_sig+1;s++){
for(sx=1;sx<7;sx++){
posx[sx]=this.pos[sx];
}
s1=sig[s];
s2=sigx[s];
posx[s1]=s2;
ch=this.check(posx);
if(ch<50){
this.number_move=this.number_move+1;
for(sx=1;sx<7;sx++){
this.pos_move[this.number_move][sx]=posx[sx]
}
}
}
var n1:number;
var n2:number;
n1=this.number_move*Math.random();
n2=Math.floor(n1)+1;
for(s=1;s<7;s++){
pos_ch[s]=this.pos_move[n2][s];
hand_ch[s]=this.hand[s];
}
var c:number[]=new Array();
for(s=0;s<10;s++){
c[s]=0;
}
for(s=1;s<7;s++){
sx=pos_ch[s];
if(sx>0)c[sx]=c[sx]+1;
}
var h:number;
var p3:number;
for(s=1;s<7;s++){
h=0
p3=pos_ch[s]
if (c[p3]>1)h=100;
if (hand_ch[s]==this.mode)h=0
if (h>50){
pos_ch[s]=0;
hand_ch[s]=this.mode;
}
}
for(s=1;s<7;s++){
this.pos[s]=pos_ch[s];
this.hand[s]=hand_ch[s];
}
this.win();
}
win():void{
if(this.hand[1]=="後手")this.mode="後手勝利";
if(this.hand[4]=="先手")this.mode="先手勝利";
var mm:string;
mm=this.mode;
if(mm=="後手")this.mode="先手";
if(mm=="先手")this.mode="後手";
}
check(posx:number[]):number{
var c:number[]=new Array();
var sp:number;
var sx:number;
var ch:number;
for(sp=0;sp<10;sp++){
c[sp]=0;
}
for(sp=1;sp<7;sp++){
if (this.hand[sp]==this.mode){
sx=posx[sp];
c[sx]=c[sx]+1
}
}
ch=0
for (sp=1;sp<10;sp++){
if(c[sp]>1)ch=100
}
return ch
}
point(x1:number,y1:number):number{
var s:number;
var p1:number;
var h:number;
p1=-1;
for(s=1;s<10;s++){
h=0;
if(this.ban[s][0]==x1)h=h+1;
if(this.ban[s][1]==y1)h=h+1;
if(h==2)p1=s;
}
return p1;
}
select():void{
var s:number;
var h:number;
var sx:number;
sx=0;
for(s=1;s<7;s++){
h=0;
if(this.hand[s]==this.mode)h=h+1;
if(this.pos[s]>0)h=h+1;
if(h==2)sx=sx+1;
if(h==2)this.koma_sel[sx]=s;
}
this.number_sel=sx;
}
makedir(h1:string,k1:string):void{
var h:number;
if (k1=="王"){
this.dx[1]=1;
this.dy[1]=-1;
this.dx[2]=0;
this.dy[2]=-1;
this.dx[3]=-1;
this.dy[3]=-1;
this.dx[4]=1;
this.dy[4]=0;
this.dx[5]=-1;
this.dy[5]=0;
this.dx[6]=-1;
this.dy[6]=1;
this.dx[7]=0;
this.dy[7]=1;
this.dx[8]=1;
this.dy[8]=1;
this.number_dir=8;
}
h=0;
if(h1=="先手")h=h+1;
if(k1=="歩")h=h+1;
if(h==2){
this.dx[1]=0;
this.dy[1]=1;
this.number_dir=1;
}
h=0;
if(h1=="後手")h=h+1;
if(k1=="歩")h=h+1;
if(h==2){
this.dx[1]=0;
this.dy[1]=-1;
this.number_dir=1;
}
}
faststep():void{
this.koma[1]="王";
this.koma[2]="歩";
this.koma[3]="歩";
this.koma[4]="王";
this.koma[5]="歩";
this.koma[6]="歩";
this.pos[1]=2;
this.pos[2]=1;
this.pos[3]=3;
this.pos[4]=8;
this.pos[5]=7;
this.pos[6]=9;
this.hand[1]="先手";
this.hand[2]="先手";
this.hand[3]="先手";
this.hand[4]="後手";
this.hand[5]="後手";
this.hand[6]="後手";
}
}
最終更新:2018年01月21日 20:06