You are on page 1of 9

// Constants

var size = 46;


// variables
var ball;
var x = 15;
var y = 15;
var m = x+size/2+size;
var n= y+size/2;
var a=x+size/2;
var b=n+size*5;
var color = Color.WHITE;

var element=0;
var element2=0;
var j;
var k;
var count=0;
var o;
var p;
var marks;
var colors=0;
var t=Randomizer.nextInt(0,1);
var killedR =0;
var killedG =0;

function start(){
background();
board();
balls();
if(t==0) {
count=0;
}else{
count=3;
}
mouseClickMethod(step);
whoStarts();
whoWins();

function line(x,y,z,k) {
var lin = new Line(x,y,z,k);
lin.setColor(Color.WHITE);
lin.setLineWidth(5);
add(lin);
}
function background() {
var rect = new Rectangle(getWidth(), getHeight());
add(rect);
line(15,15, 15, getHeight()-96);
line(15,getHeight()-96, getWidth()-15, getHeight()-96);
line(15,15, getWidth()-15, 15);
line(getWidth()-15, 15, getWidth()-15, getHeight()-96);
}

function board () {
while(y<=350) {
rect(x, y, color);
x = x + size;
if(color==Color.BLACK) {
color = Color.WHITE;
}else{
color = Color.BLACK;
}
rect(x, y, color);
if(color==Color.BLACK) {
color = Color.WHITE;
}else{
color = Color.BLACK;
}
x = x + size;

if(x>=getWidth()-65) {
x = 15;
y = y+size;
if(color==Color.BLACK) {
color = Color.WHITE;
}else{
color = Color.BLACK;
}

}
}
}

function rect(x, y, color) {


var rect;
rect = new Rectangle(size,size);
rect.setPosition(x, y);
rect.setColor(color);
add(rect);
}

function ballx(x, y) {
ball = new Circle(20);
ball.setColor(Color.RED);
ball.setPosition(x, y);
add(ball);
}

function bally(x, y) {
var ball = new Circle(20);
ball.setColor(Color.GREY);
ball.setPosition(x, y);
add(ball);
}

function balls() {
for(var i=0; i<12; i++) {
ballx(m,n);
m=m+2*size;
if(m>=getWidth()) {
n=n+size;
m=x+size/2;
if(n>=100) {
m=x+size/2+size;
}
}
}
for(var i=0; i<12; i++) {
bally(a,b);
a=a+size*2;
if(a>=getWidth()) {
b=b+size;
a=x+size/2+size;
if(b>=350) {
a=x+size/2;
}
}
}
}

function step(e) {

if(count%6==5) {

count=count-2;
}

///////////????????????????????????????????????????????????????????????????????????
????????????????????
if(count%6==4) {

if(getElementAt(e.getX(), e.getY())==element2 ||
getElementAt(e.getX(), e.getY())==marks) {
element2 = 0;
remove(marks);
count++;

}else{
if(getElementAt(e.getX(), e.getY())!=element2 &&
getElementAt(e.getX(), e.getY())!=marks &&
((p+size<getHeight()-size*2 && o-size>0 && getElementAt(o-size,
p+size).getColor()==Color.BLACK) ||
(p+size<getHeight()-size*2 && o+size<getWidth() && getElementAt(o+size,
p+size).getColor()==Color.BLACK))

if(e.getX()<=o) { if(e.getY()>=p && o-size>0 && getElementAt(o-size,


p+size).getColor()==Color.BLACK) {
element2.move(-size, size);
if(element2.getY()>320) { element2.setColor(Color.YELLOW); }
remove(marks);
count=count+2;
}
}else{ if(e.getY()>=p && o+size<getWidth() && getElementAt(o+size,
p+size).getColor()==Color.BLACK) {
element2.move(size, size);
if(element2.getY()>320) { element2.setColor(Color.YELLOW); }
count=count+2;
remove(marks);
}
}

}
/////////////////////////////////// RED KILLS GREY
if(p+size*2<getHeight()-90 && o-size*2>0 && (getElementAt(o-
size,p+size).getColor()==Color.GREY || getElementAt(o-
size,p+size).getColor()==Color.CYAN) &&
(o-size*2>0 && getElementAt(o-size*2,
p+size*2).getColor()==Color.BLACK))
{ if(e.getX()<=o && e.getY()>=p) {
element2.move(-size*2, size*2);
if(element2.getY()>320) { element2.setColor(Color.YELLOW); }
remove(marks);
remove(getElementAt(o-size,p+size));
killedG++;
count=count+2;

}
}

if(p+size*2<getHeight()-90 && o+size<getWidth() &&


(getElementAt(o+size,p+size).getColor()==Color.GREY ||
getElementAt(o+size,p+size).getColor()==Color.CYAN) &&
(o+size*2<getWidth() && getElementAt(o+size*2,
p+size*2).getColor()==Color.BLACK))
{ if(e.getX()>o && e.getY()>=p) {
element2.move(+size*2, size*2);
if(element2.getY()>320) { element2.setColor(Color.YELLOW); }
remove(marks);
remove(getElementAt(o+size,p+size));
killedG++;
count=count+2;

}
}

////////////////////////////GO BACK ABILITY/////////////////////////////

if(e.getX()<=o && colors==1) { if(p-size>0 && e.getY()<=p && o-size>0 &&


getElementAt(o-size, p-size).getColor()==Color.BLACK) {
element2.move(-size, -size);
remove(marks);
count=count+2;
colors=0;
}
}else { if(colors==1 && p-size>0 && e.getY()<=p && o+size<getWidth() &&
getElementAt(o+size, p-size).getColor()==Color.BLACK) {
element2.move(size, -size);
count=count+2;
remove(marks);
colors=0;
}
}

////////////////////////////////////KILLING BACK///////////////////
if(colors==1 && o-size*2>0 && (getElementAt(o-size,p-
size).getColor()==Color.GREY ||
getElementAt(o-size,p-size).getColor()==Color.CYAN) &&
(o-size*2>0 && p-size*2>0 && getElementAt(o-size*2, p-
size*2).getColor()==Color.BLACK))
{ if(e.getX()<=o && e.getY()<=p) {
element2.move(-size*2, -size*2);
remove(marks);
remove(getElementAt(o-size,p-size));
killedG++;
count=count+2;
colors=0;

}
}

if(colors==1 && p-size*2>0 && o+size<getWidth() && (getElementAt(o+size,p-


size).getColor()==Color.GREY ||
getElementAt(o+size,p-size).getColor()==Color.CYAN) &&
(o+size*2<getWidth() && getElementAt(o+size*2, p-
size*2).getColor()==Color.BLACK))
{ if(e.getX()>o && e.getY()<=p) {
element2.move(+size*2, -size*2);
remove(marks);
remove(getElementAt(o+size,p-size));
killedG++;
count=count+2;
colors=0;

}
}

/////////////////////////////////////////////////////////
}
}
////////////????????????????????????????????????????????????????????????????????
?????????????

if(count%6==3) {
if(getElementAt(e.getX(), e.getY()).getColor()==Color.RED) {
element2 = getElementAt(e.getX(), e.getY());
o = element2.getX();
p = element2.getY();
mark(o, p);
count++;

/////////////////// When RED BECOMES YELLOW


if(getElementAt(e.getX(), e.getY()).getColor()==Color.YELLOW) {
element2 = getElementAt(e.getX(), e.getY());
o = element2.getX();
p = element2.getY();
mark(o, p);
count++;
colors=1;

}
}

if(count%6==2) {

count=0;
}

///////////////!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!
if(count%6==1) {

if(getElementAt(e.getX(), e.getY())==element ||
getElementAt(e.getX(), e.getY())==marks) {
element = 0;
remove(marks);
count++;

}else{

if(getElementAt(e.getX(), e.getY())!=element &&


getElementAt(e.getX(), e.getY())!=marks &&
((k-size>0 && j-size>0 && getElementAt(j-size, k-
size).getColor()==Color.BLACK) ||
(k-size>0 && j+size<getWidth() && getElementAt(j+size, k-
size).getColor()==Color.BLACK)))

if(e.getX()<=j && e.getY()<=k ) { if(j-size>0 && getElementAt(j-size, k-


size).getColor()==Color.BLACK) {
element.move(-size, -size);
if(element.getY()<40) { element.setColor(Color.CYAN); }
remove(marks);
count=count+2;
}}
else { if(e.getY()<=k && j+size<getWidth() && getElementAt(j+size, k-
size).getColor()==Color.BLACK) {
element.move(size, -size);
if(element.getY()<40) { element.setColor(Color.CYAN); }
count=count+2;
remove(marks);
}}

}
///////////////////////////////// GREY KILLS RED
if(k-size*2>0 && j-size>0 && (getElementAt(j-size,k-
size).getColor()==Color.RED ||
getElementAt(j-size,k-size).getColor()==Color.YELLOW) &&
(j-size*2>0 && getElementAt(j-size*2, k-
size*2).getColor()==Color.BLACK))
{ if(e.getX()<=j && e.getY()<=k) {
element.move(-size*2, -size*2);
if(element.getY()<40) { element.setColor(Color.CYAN); }
remove(marks);
remove(getElementAt(j-size,k-size));
killedR++;
count=count+2;

}
}

if(k-size*2>0 && j+size<getWidth() && (getElementAt(j+size,k-


size).getColor()==Color.RED ||
getElementAt(j+size,k-size).getColor()==Color.YELLOW) &&
(j+size*2<getWidth() && getElementAt(j+size*2, k-
size*2).getColor()==Color.BLACK))
{ if(e.getX()>j && e.getY()<=k) {
element.move(+size*2, -size*2);
if(element.getY()<40) { element.setColor(Color.CYAN); }
remove(marks);
remove(getElementAt(j+size,k-size));
killedR++;
count=count+2;

}
}

////////////////////////////GO BACK ABILITY/////////////////////////////

if(e.getX()<=j && colors==1) { if(k+size<getHeight()-size*2 && e.getY()>=k &&


j-size>0 && getElementAt(j-size, k+size).getColor()==Color.BLACK) {
element.move(-size, size);
remove(marks);
count=count+2;
colors=0;
}
}else{ if(colors==1 && k+size<getHeight()-size*2 && e.getY()>=k &&
j+size<getWidth() && getElementAt(j+size, k+size).getColor()==Color.BLACK) {
element.move(size, size);
count=count+2;
remove(marks);
colors=0;
}
}
//////////////////////////////KILLING BACK ABILITY//////////////////////

if(colors==1 && j-size*2>0 && (getElementAt(j-


size,k+size).getColor()==Color.RED ||
getElementAt(j-size,k+size).getColor()==Color.YELLOW) &&
(j-size*2>0 && getElementAt(j-size*2,
k+size*2).getColor()==Color.BLACK))
{ if(e.getX()<=j && e.getY()>=k) {
element.move(-size*2, size*2);
remove(marks);
remove(getElementAt(j-size,k+size));
killedR++;
count=count+2;
colors=0;
}
}

if(colors==1 && k+size*2<getHeight() && j+size<getWidth() &&


(getElementAt(j+size,k+size).getColor()==Color.RED ||
getElementAt(j+size,k+size).getColor()==Color.YELLOW) &&
(j+size*2<getWidth() && getElementAt(j+size*2,
k+size*2).getColor()==Color.BLACK))
{ if(e.getX()>j && e.getY()>=k) {
element.move(+size*2, size*2);
remove(marks);
remove(getElementAt(j+size,k+size));
killedR++;
count=count+2;
colors=0;

}
}

//////////////////////////////////////////////////////////////
}
}

///////!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!

if(count%6==0) {

if(getElementAt(e.getX(), e.getY()).getColor()==Color.GREY) {
element = getElementAt(e.getX(), e.getY());
j = element.getX();
k = element.getY();
mark(j, k);
count++;

}
/////////////////// When GREY BECOMES CAYEN
if(getElementAt(e.getX(), e.getY()).getColor()==Color.CYAN) {
element = getElementAt(e.getX(), e.getY());
j = element.getX();
k = element.getY();
mark(j, k);
count++;
colors=1;

}
}
}

function mark(x,y) {
marks = new Circle(6);
marks.setColor(Color.ORANGE);
marks.setPosition(x,y);
add(marks);
}
function whoStarts() {
if(t==0) {
var txt= new Text("GREY STARTS");
txt.setPosition(200, 440);
txt.setColor(Color.WHITE);
add(txt);
}else{
var txt= new Text("RED STARTS");
txt.setPosition(200, 440);
txt.setColor(Color.RED);
add(txt);
}
}

function whoWins() {
if(killedG>=12) {
var txt= new Text("RED WINS!");
txt.setPosition(100, 440);
txt.setColor(Color.RED);
add(txt);
}
if(killedR>=12) {
var txt= new Text("GREY WINS!");
txt.setPosition(100, 440);
txt.setColor(Color.WHITE);
add(txt);
}
}

You might also like