int x;
int y;
int i;
int q;
int w;
int he;
int wi;
int code;
int time;
int life;
int Point[][][]=
{
{{2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2},
{2,0,1,1,1,1,1,1,1,2,1,1,1,1,1,1,2,2},
{2,1,2,2,2,2,2,2,1,2,1,2,2,1,2,1,2,2},
{2,1,2,1,1,1,2,1,1,2,1,2,1,1,2,1,2,2},
{2,1,1,1,2,1,1,1,2,2,1,1,1,2,2,1,2,2},
{2,1,2,1,2,2,2,1,1,1,1,2,1,2,1,1,2,2},
{2,1,1,1,2,2,2,2,1,1,2,2,1,2,1,2,2,2},
{2,2,2,1,2,2,2,2,1,1,1,1,1,1,1,1,1,2},
{2,2,2,1,2,2,2,2,1,1,2,2,2,1,2,2,1,2},
{2,1,1,1,2,2,2,0,0,0,0,2,2,1,2,2,1,2},
{2,1,2,1,2,2,2,0,0,0,0,2,2,1,2,1,1,2},
{2,1,2,1,2,2,2,2,2,2,2,2,2,1,1,1,2,2},
{2,1,2,1,1,1,1,1,2,2,2,2,1,1,2,1,2,2},
{2,1,2,2,2,2,2,1,1,1,2,2,1,2,2,1,2,2},
{2,1,1,2,2,2,2,1,2,1,2,2,1,2,2,1,2,2},
{2,2,1,1,1,1,2,1,1,1,2,1,1,1,1,1,2,2},
{2,2,2,2,2,1,1,1,2,1,1,1,2,2,2,2,2,2},
{2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2}}
,
{{2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2},
{2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2},
{2,1,2,2,2,2,2,2,2,2,2,2,2,1,2,1,2,2},
{2,1,2,1,1,1,2,2,2,2,2,2,1,1,2,1,2,2},
{2,1,2,1,2,1,2,0,0,0,0,2,1,2,2,1,2,2},
{2,1,2,1,2,1,2,0,0,0,0,2,1,2,1,1,1,2},
{2,1,1,1,2,1,2,2,1,1,2,2,1,2,1,2,1,2},
{2,2,2,2,2,1,2,2,1,1,2,1,1,1,1,2,1,2},
{2,1,1,1,2,1,2,1,1,1,1,1,2,1,2,2,1,2},
{2,1,2,1,2,1,1,1,2,2,2,1,2,1,2,2,1,2},
{2,1,2,1,2,2,2,1,1,1,1,1,2,1,1,1,1,2},
{2,1,2,1,1,1,1,1,2,2,2,1,2,2,2,2,2,2},
{2,1,2,1,2,2,2,1,2,1,1,1,1,1,1,1,1,2},
{2,1,2,1,2,2,2,1,2,1,2,1,2,2,2,2,1,2},
{2,1,2,1,1,1,1,1,2,1,2,1,1,1,1,1,1,2},
{2,1,2,2,2,1,2,1,2,1,2,2,1,2,1,2,1,2},
{2,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,2},
{2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2}}
,
{{2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2},
{2,0,1,1,1,1,1,1,1,2,1,1,1,1,1,1,2,2},
{2,1,2,2,2,2,2,2,1,2,1,2,2,1,2,1,2,2},
{2,1,2,1,1,1,2,1,1,2,1,2,1,1,2,1,2,2},
{2,1,2,1,2,1,1,1,2,2,1,1,1,2,2,1,2,2},
{2,1,2,1,2,1,2,1,1,1,1,2,1,2,1,1,1,2},
{2,1,1,1,2,1,2,1,2,1,2,2,1,2,1,2,1,2},
{2,2,2,2,2,1,2,1,2,1,2,1,1,1,1,2,1,2},
{2,1,1,1,1,1,2,1,2,1,2,1,2,1,2,2,1,2},
{2,1,2,1,2,1,1,1,2,1,2,1,2,1,2,1,1,2},
{2,1,2,1,2,2,2,1,1,1,2,1,1,1,1,1,2,2},
{2,1,2,1,1,1,2,1,2,2,2,1,2,2,2,2,2,2},
{2,1,2,1,2,1,1,1,2,1,1,1,1,1,1,1,1,2},
{2,1,1,1,2,2,2,1,2,1,2,1,2,2,2,2,1,2},
{2,1,2,1,1,1,2,1,1,1,2,1,1,1,1,1,1,2},
{2,1,2,2,2,1,2,1,2,1,2,2,1,2,1,2,1,2},
{2,1,1,1,1,1,1,1,2,1,1,1,1,2,1,1,1,2},
{2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2}}
};
int dis;
int BS;
int SS;
int eat;
int n;
int z;
int stage=0;
int a[]={0,0,0,0,0};
int p;
int m=1;
int f[]={0,0,0,0};
int g[]={0,0,0,0};
int v;
int u[]={0,0,0,0};
float cad[]={0,0,0,0};
int r[]={255,255,0,255};
int Gr[]={0,125,0,0};
int b[]={0,0,255,255};
float t;
int o;
void setup()
{
size(600,600);
textAlign(CENTER);
he=height;
wi=width;
n=17;
dis=wi/n;
BS=30;
SS=20;
x=dis;
y=dis;
o=1;
for(w=0;w<=3;w++)
{
f[w]=wi/2-dis/2;
g[w]=wi/2+dis/2;
}
for(i=0;i<=n;i++)
{
for(q=0;q<=n;q++)
{
for(p=0;p<=2;p++)
{
if(Point[p][i][q]==1) a[p]++;
}
}
}
life=5;
}
void draw()
{
time+=1;
delay(1);
background(255);
stroke(195,195,0);
strokeWeight(BS);
point(x,y);
noStroke();
strokeWeight(1);
fill(255);
if(keyCode==39) triangle(x,y,x+BS/2+2,y-BS/2+t,x+BS/2+2,y+BS/2-t);
if(keyCode==37) triangle(x,y,x-BS/2-2,y-BS/2+t,x-BS/2-2,y+BS/2-t);
if(keyCode==38) triangle(x,y,x-BS/2+t,y-BS/2-2,x+BS/2-t,y-BS/2-2);
if(keyCode==40) triangle(x,y,x-BS/2+t,y+BS/2+2,x+BS/2-t,y+BS/2+2);
t+=o;
///////////////////////////////////////////////////////////////////////
if(time>=15)
{
for(w=0;w<=3;w++)
{
cad[w]=int(cad[w]=random(random(1,2),random(3,4)));
}
o*=-1;
time=0;
}
///////////////////////////////////////////////////////////////////////attacker
for(w=0;w<=3;w++)
{
if(cad[w]==1)
{
f[w]-=dis;
for(i=0;i<=n;i++)
{
for(q=0;q<=n;q++)
{
if(Point[stage][i][q]==2)
{
if((f[w]<=q*dis+BS*sqrt(2)/4)&&(f[w]>=q*dis-BS*sqrt(2)/4))
{
if((g[w]<=i*dis+BS*sqrt(2)/4)&&(g[w]>=i*dis-BS*sqrt(2)/4))
{
f[w]+=dis;
}
}
}
}
}
cad[w]=0;
}
if(cad[w]==3)
{
g[w]-=dis;
for(i=0;i<=n;i++)
{
for(q=0;q<=n;q++)
{
if(Point[stage][i][q]==2)
{
if((f[w]<=q*dis+BS*sqrt(2)/4)&&(f[w]>=q*dis-BS*sqrt(2)/4))
{
if((g[w]<=i*dis+BS*sqrt(2)/4)&&(g[w]>=i*dis-BS*sqrt(2)/4))
{
g[w]+=dis;
}
}
}
}
}
cad[w]=0;
}
if(cad[w]==2)
{
f[w]+=dis;
for(i=0;i<=n;i++)
{
for(q=0;q<=n;q++)
{
if(Point[stage][i][q]==2)
{
if((f[w]<=q*dis+BS*sqrt(2)/4)&&(f[w]>=q*dis-BS*sqrt(2)/4))
{
if((g[w]<=i*dis+BS*sqrt(2)/4)&&(g[w]>=i*dis-BS*sqrt(2)/4))
{
f[w]-=dis;
}
}
}
}
}
cad[w]=0;
}
if(cad[w]==4)
{
g[w]+=dis;
for(i=0;i<=n;i++)
{
for(q=0;q<=n;q++)
{
if(Point[stage][i][q]==2)
{
if((f[w]<=q*dis+BS*sqrt(2)/4)&&(f[w]>=q*dis-BS*sqrt(2)/4))
{
if((g[w]<=i*dis+BS*sqrt(2)/4)&&(g[w]>=i*dis-BS*sqrt(2)/4))
{
g[w]-=dis;
}
}
}
}
}
cad[w]=0;
}
}
////////user
if(code==37)
{
x-=dis;
for(i=0;i<=n;i++)
{
for(q=0;q<=n;q++)
{
if(Point[stage][i][q]==2)
{
if((x<=q*dis+BS*sqrt(2)/4)&&(x>=q*dis-BS*sqrt(2)/4))
{
if((y<=i*dis+BS*sqrt(2)/4)&&(y>=i*dis-BS*sqrt(2)/4))
{
x+=dis;
}
}
}
}
}
}
if(code==38)
{
y-=dis;
for(i=0;i<=n;i++)
{
for(q=0;q<=n;q++)
{
if(Point[stage][i][q]==2)
{
if((x<=q*dis+BS*sqrt(2)/4)&&(x>=q*dis-BS*sqrt(2)/4))
{
if((y<=i*dis+BS*sqrt(2)/4)&&(y>=i*dis-BS*sqrt(2)/4))
{
y+=dis;
}
}
}
}
}
}
if(code==39)
{
x+=dis;
for(i=0;i<=n;i++)
{
for(q=0;q<=n;q++)
{
if(Point[stage][i][q]==2)
{
if((x<=q*dis+BS*sqrt(2)/4)&&(x>=q*dis-BS*sqrt(2)/4))
{
if((y<=i*dis+BS*sqrt(2)/4)&&(y>=i*dis-BS*sqrt(2)/4))
{
x-=dis;
}
}
}
}
}
}
if(code==40)
{
y+=dis;
for(i=0;i<=n;i++)
{
for(q=0;q<=n;q++)
{
if(Point[stage][i][q]==2)
{
if((x<=q*dis+BS*sqrt(2)/4)&&(x>=q*dis-BS*sqrt(2)/4))
{
if((y<=i*dis+BS*sqrt(2)/4)&&(y>=i*dis-BS*sqrt(2)/4))
{
y-=dis;
}
}
}
}
}
}
code=0;
stroke(0,255,0);
strokeWeight(SS);
for(i=0;i<=n;i++)
{
for(q=0;q<=n;q++)
{
if(Point[stage][i][q]==1)
{
stroke(0,255,0);
strokeWeight(SS);
point(q*dis,i*dis);
if((x<=q*dis+BS*sqrt(2)/4)&&(x>=q*dis-BS*sqrt(2)/4))
{
if((y<=i*dis+BS*sqrt(2)/4)&&(y>=i*dis-BS*sqrt(2)/4))
{
Point[stage][i][q]=0;
eat++;
}
}
}
if(Point[stage][i][q]==2)
{
fill(0,255,255);
noStroke();
rect(q*dis-dis/2,i*dis-dis/2,dis,dis);
}
}
}
stage=stage+1;
fill(0);
textSize(20);
text("POINT"+" : "+eat,width*3/4,16);
text("STAGE"+" : "+stage,width/4,16);
text("LIFE"+" : "+life,width/2,16);
stage=stage-1;
for(w=0;w<=3;w++)
{
if((f[w]<=x+BS/2)&&(f[w]>=x-BS/2))
{
if((g[w]<=y+BS/2)&&(g[w]>=y-BS/2))
{
life--;
x=dis;
y=dis;
if(stage==0)
{
delay(1000);
time=0;
for(v=0;v<=3;v++)
{
f[v]=wi/2-dis/2;
g[v]=wi/2+dis/2;
}
}
if(stage==1)
{
delay(1000);
time=0;
for(v=0;v<=3;v++)
{
f[v]=8*dis;
g[v]=4*dis;
}
}
}
}
}
if(eat==a[stage])
{
x=dis;
y=dis;
stage+=1;
if(stage==1)
{
time=0;
for(w=0;w<=3;w++)
{
f[w]=8*dis;
g[w]=4*dis;
}
}
eat=0;
}
strokeWeight(BS);
for(w=0;w<=3;w++)
{
stroke(r[w],Gr[w],b[w]);
point(f[w],g[w]);
}
}
void keyPressed()
{
code=keyCode;
}