アットウィキロゴ

ほいで

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