var x=new Array();
function game(){
var s,sx;
for(s=1;s<9;s++){
x[s]=new Array();
}
for(s=1;s<9;s++){
for(sx=1;sx<9;sx++){
x[s][sx]=0;
}
}
x[4][4]=1;
x[5][5]=1;
x[4][5]=2;
x[5][4]=2;
paint();
}
function paint(){
var sub=new svgpaint();
str="<svg width=\"400\" height=\"400\">";
for(s=1;s<9;s++){
for(sx=1;sx<9;sx++){
if(x[s][sx]==0)str=str+sub.circle(50*sx-25,50*s-25,25,"green");
if(x[s][sx]==1)str=str+sub.circle(50*sx-25,50*s-25,25,"black");
if(x[s][sx]==2)str=str+sub.circle(50*sx-25,50*s-25,25,"red");
}}
str=str+"</svg>";
$("#memo").html(str);
}
function shuffle(c,x1,y1){
var dx,dy,ch;
ch=0;
dx=1;
dy=1;
if(play(c,x1,y1,dx,dy)>50)cal(c,x1,y1,dx,dy);
dx=1;
dy=0;
if(play(c,x1,y1,dx,dy)>50)cal(c,x1,y1,dx,dy);
dx=0;
dy=1;
if(play(c,x1,y1,dx,dy)>50)cal(c,x1,y1,dx,dy);
dx=-1;
dy=-1;
if(play(c,x1,y1,dx,dy)>50)cal(c,x1,y1,dx,dy);
dx=-1;
dy=0;
if(play(c,x1,y1,dx,dy)>50)cal(c,x1,y1,dx,dy);
dx=0;
dy=-1;
if(play(c,x1,y1,dx,dy)>50)cal(c,x1,y1,dx,dy);
dx=-1;
dy=1;
if(play(c,x1,y1,dx,dy)>50)cal(c,x1,y1,dx,dy);
dx=1;
dy=-1;
if(play(c,x1,y1,dx,dy)>50)cal(c,x1,y1,dx,dy);
x[y1][x1]=c;
}
function point(c,x1,y1){
var dx,dy,ch;
ch=0;
dx=1;
dy=1;
if(play(c,x1,y1,dx,dy)>50)ch=100;
dx=1;
dy=0;
if(play(c,x1,y1,dx,dy)>50)ch=100;
dx=0;
dy=1;
if(play(c,x1,y1,dx,dy)>50)ch=100;
dx=-1;
dy=-1;
if(play(c,x1,y1,dx,dy)>50)ch=100;
dx=-1;
dy=0;
if(play(c,x1,y1,dx,dy)>50)ch=100;
dx=0;
dy=-1;
if(play(c,x1,y1,dx,dy)>50)ch=100;
dx=-1;
dy=1;
if(play(c,x1,y1,dx,dy)>50)ch=100;
dx=1;
dy=-1;
if(play(c,x1,y1,dx,dy)>50)ch=100;
return ch;
}
function play(c,x1,y1,dx,dy){
var s,ch;
var card=new Array();
var x2,y2;
for(s=1;s<8;s++){
x2=x1+s*dx;
y2=y1+s*dy;
ch=0;
if(x2>8)ch=100;
if(x2<1)ch=100;
if(y2>8)ch=100;
if(y2<1)ch=100;
card[s]=0;
if(ch<50)card[s]=x[y2][x2];
}
var minc,h;
minc=0;
for(s=2;s<8;s++){
h=0;
if(card[s]==c)h=h+1;
if(minc==0)h=h+1;
if(h==2)minc=s;
}
var z,h;
z=0;
for(s=1;s<minc;s++){
if(card[s]==c)z=100;
if(card[s]==0)z=100;
}
var chx;
chx=0;
h=0;
if(z<50)h=h+1;
if(minc>0)h=h+1;
if(h==2)chx=100;
return chx;
}
function cal(c,x1,y1,dx,dy){
var s,minc,h,z;
minc=0;
for(s=2;s<8;s++){
x2=x1+s*dx;
y2=y1+s*dy;
ch=0;
if(x2>8)ch=100;
if(x2<1)ch=100;
if(y2>8)ch=100;
if(y2<1)ch=100;
z=0;
if(ch<50)z=x[y2][x2];
h=0;
if(z==c)h=h+1;
if(minc==0)h=h+1;
if(h==2)minc=s;
}
for(s=1;s<minc;s++){
x2=x1+s*dx;
y2=y1+s*dy;
x[y2][x2]=c;
}
}
function rev(){
var s,sx,tx;
var ex=new Array();
var ey=new Array();
var number_e;
tx=0;
for(s=1;s<9;s++){
for(sx=1;sx<9;sx++){
if(x[s][sx]==0)tx=tx+1;
if(x[s][sx]==0)ex[tx]=sx;
if(x[s][sx]==0)ey[tx]=s;
}
}
number_e=tx;
for(s=1;s<number_e+1;s++){
x1=ex[s];
y1=ey[s];
if(point(2,x1,y1)>50)x2=x1;
if(point(2,x1,y1)>50)y2=y1;
}
shuffle(2,x2,y2);
}
$(document).ready( function() {
$("#memo").click(function(e){
var cx=e.clientX;
var cy=e.clientY;
x1=Math.floor(cx/50)+1;
y1=Math.floor(cy/50)+1;
if(point(1,x1,y1)>50){
shuffle(1,x1,y1);
rev();
}
paint();
});
});
最終更新:2015年04月13日 22:07