package svg2;
public class change{
int card=new int[9][9];
int vx=new int[9];
int vy=new int[9];
void makedata(int trial,int px,int py){
vec();
graph(trial,px,py);
card[px][py]=trial;
}
void vec(){
vx[1]=1;
vx[2]=1;
vx[3]=1;
vx[4]=0;
vx[5]=0;
vx[6]=-1;
vx[7]=-1;
vx[8]=-1;
vy[1]=1;
vy[2]=0;
vy[3]=-1;
vy[4]=1;
vy[5]=-1;
vy[6]=1;
vy[7]=0;
vy[8]=-1;
}
void change(int trial,int px,int py,int v,int minpoint){
int x1,y1,s;
for(s=1;s<minpoint;s++){
x1=px+vx[v]*s;
y1=py+vy[v]*s;
card[x1][y1]=trial;
}
}
void graph(int trial,int px,int py){
int v,mx,nx,ch,check;
check=0;
for(v=1;v<9;v++){
mx=maxpoint(px,py,v);
nx=0;
if(mx>1)nx=minpoint(trial,px,py,v,mx);
ch=100;
if(nx>1)ch=check(trial,px,py,v,nx);
if(ch<50)change(trial,px,py,v,nx);
}
}
int check(int trial,int px,int py,int v,int mp){
int s,x1,y1,ch;
ch=0;
for(s=1;s<mp;s++){
x1=px+vx[v]*s;
y1=py+vy[v]*s;
if(card[x1][y1]==0)ch=100;
}
return ch;
}
int minpoint(int trial,int px,int py,int v,int mp){
int s,x1,y1,h,minp;
minp=0;
for(s=1;s<mp+1;s++){
x1=px+vx[v]*s;
y1=py+vy[v]*s;
h=0;
if(card[x1][y1]==trial)h=h+1;
if(minp==0)h=h+1;
if(h==2)minp=s;
}
return minp;
}
int maxpoint(int px,int py,int v){
int t1,maxp,s,x1,y1,h;
maxp=0;
for(s=1;s<8;s++){
x1=px+vx[v]*s;
y1=py+vy[v]*s;
h=0;
if(x1<9)h=h+1;
if(x1>0)h=h+1;
if(y1<9)h=h+1;
if(y1>0)h=h+1;
if(h==4)maxp=s;
}
return maxp;
}
}