/*
__________________________________________________________
ASSIGNMENT 2 : INTERACTIVE TOY
"The Digitized Go Board " by Nicklas Steffensen
991 318 977
This program creates a facsimile of a traditional "Go" board; a chinese board game utilizing nothing but simple black and white game pieces.
__________________________________________________________
*/
//These variables govern a loop that prints the lines dividing the game board into segments
int endColumns=750;
int endRows=600;
int spacing = 50;
int columnX=50;
int columnY=50;
int rowX=50;
int rowY=50;
int columnLength= 500;
int rowLength=700;
//The frame is set to be 800 by 600 pixels in size, with the rectangle and ellipse rules being set to 'CENTER'
void setup() {
size (800, 600);
smooth(0);
rectMode(CENTER);
ellipseMode(CENTER);
//A loop is utillized wiht a random number generator that changes the background of the program upon each intilization; as a result, a different shade of blue provides the backdrop each time
for (int i=0; i<500; i++) {
float backgroundColour = random (100, 255);
background(124, 245, backgroundColour);
}
//The main body of the game board is drawn, independant of the divider lines
stroke (3);
fill (#F5E65B);
rect (400, 300, 700, 500);
println ("Left Click an intersection to place a white piece!");
println("Right Click to intersectino to place a black piece!");
}
void draw() {
//Two 'while' loops are used to print the horizontal and vertical lines dividing the game board several times
strokeWeight(5);
while (columnX<=endColumns) {
line(columnX, columnY, columnX, columnY+columnLength);
columnX = columnX+spacing;
}
while (rowY<=endRows) {
line(rowX, rowY, rowX+rowLength, rowY);
rowY=rowY+spacing;
}
}
void mousePressed() {
//The mouseButton system variable is used to determine the colour of piece being played; right clicks place white pieces, while left clicks place black ones
if (mouseButton == LEFT) {
fill (255);
} else if (mouseButton == RIGHT) {
fill (0);
}
//The criteria for where the mouse must be clicked on to generate a piece is established; pieces can only be placed on intersecting points
if (mouseX<110 && mouseX>90 && mouseY<110 && mouseY>90) {
ellipse (100, 100, 50, 50);
} else if (mouseX<110 && mouseX>90 && mouseY<160 ) {
ellipse (100, 150, 50, 50);
} else if (mouseX<110 && mouseX>90 && mouseY<210) {
ellipse (100, 200, 50, 50);
} else if (mouseX<110 && mouseX>90 && mouseY<260) {
ellipse (100, 250, 50, 50);
} else if (mouseX<110 && mouseX>90 && mouseY<310) {
ellipse (100, 300, 50, 50);
} else if (mouseX<110 && mouseX>90 && mouseY<360) {
ellipse (100, 350, 50, 50);
} else if (mouseX<110 && mouseX>90 && mouseY<410) {
ellipse (100, 400, 50, 50);
} else if (mouseX<110 && mouseX>90 && mouseY<460) {
ellipse (100, 450, 50, 50);
} else if (mouseX<110 && mouseX>90 && mouseY<510 ) {
ellipse (100, 500, 50, 50);
}
//Parameters for piece placement are set for column 2
if (mouseX<160 && mouseX>140 && mouseY<110 && mouseY>90) {
ellipse (150, 100, 50, 50);
} else if (mouseX<160 && mouseX>140 && mouseY<160 && mouseY>140) {
ellipse (150, 150, 50, 50);
} else if (mouseX<160 && mouseX>140 && mouseY<210 && mouseY>140) {
ellipse (150, 200, 50, 50);
} else if (mouseX<160 && mouseX>140 && mouseY<260 && mouseY>140) {
ellipse (150, 250, 50, 50);
} else if (mouseX<160 && mouseX>140 && mouseY<310 && mouseY>140) {
ellipse (150, 300, 50, 50);
} else if (mouseX<160 && mouseX>140 && mouseY<360 && mouseY>140) {
ellipse (150, 350, 50, 50);
} else if (mouseX<160 && mouseX>140 && mouseY<410 && mouseY>140) {
ellipse (150, 400, 50, 50);
} else if (mouseX<160 && mouseX>140 && mouseY<460 && mouseY>140) {
ellipse (150, 450, 50, 50);
} else if (mouseX<160 && mouseX>140 && mouseY<510 && mouseY>140) {
ellipse (150, 500, 50, 50);
}
//Parameters for piece placement are set for column 3
if (mouseX<210 && mouseX>190 && mouseY<110 && mouseY>90) {
ellipse (200, 100, 50, 50);
} else if (mouseX<210 && mouseX>190 && mouseY<160 && mouseY>140) {
ellipse (200, 150, 50, 50);
} else if (mouseX<210 && mouseX>190 && mouseY<210 && mouseY>140) {
ellipse (200, 200, 50, 50);
} else if (mouseX<210 && mouseX>190 && mouseY<260 && mouseY>140) {
ellipse (200, 250, 50, 50);
} else if (mouseX<210 && mouseX>190 && mouseY<310 && mouseY>140) {
ellipse (200, 300, 50, 50);
} else if (mouseX<210 && mouseX>190 && mouseY<360 && mouseY>140) {
ellipse (200, 350, 50, 50);
} else if (mouseX<210 && mouseX>190 && mouseY<410 && mouseY>140) {
ellipse (200, 400, 50, 50);
} else if (mouseX<210 && mouseX>190 && mouseY<460 && mouseY>140) {
ellipse (200, 450, 50, 50);
} else if (mouseX<210 && mouseX>190 && mouseY<510 && mouseY>140) {
ellipse (200, 500, 50, 50);
}
//Parameters for piece placement are set for column 4
if (mouseX<260 && mouseX>240 && mouseY<110 && mouseY>90) {
ellipse (250, 100, 50, 50);
} else if (mouseX<260 && mouseX>240 && mouseY<160 && mouseY>140) {
ellipse (250, 150, 50, 50);
} else if (mouseX<260 && mouseX>240 && mouseY<210 && mouseY>140) {
ellipse (250, 200, 50, 50);
} else if (mouseX<260 && mouseX>240 && mouseY<260 && mouseY>140) {
ellipse (250, 250, 50, 50);
} else if (mouseX<260 && mouseX>240 && mouseY<310 && mouseY>140) {
ellipse (250, 300, 50, 50);
} else if (mouseX<260 && mouseX>240 && mouseY<360 && mouseY>140) {
ellipse (250, 350, 50, 50);
} else if (mouseX<260 && mouseX>240 && mouseY<410 && mouseY>140) {
ellipse (250, 400, 50, 50);
} else if (mouseX<260 && mouseX>240 && mouseY<460 && mouseY>140) {
ellipse (250, 450, 50, 50);
} else if (mouseX<260 && mouseX>240 && mouseY<510 && mouseY>140) {
ellipse (250, 500, 50, 50);
}
//Parameters for piece placement are set for column 5
if (mouseX<310 && mouseX>290 && mouseY<110 && mouseY>90) {
ellipse (300, 100, 50, 50);
} else if (mouseX<310 && mouseX>290 && mouseY<160 && mouseY>140) {
ellipse (300, 150, 50, 50);
} else if (mouseX<310 && mouseX>290 && mouseY<210 && mouseY>140) {
ellipse (300, 200, 50, 50);
} else if (mouseX<310 && mouseX>290 && mouseY<260 && mouseY>140) {
ellipse (300, 250, 50, 50);
} else if (mouseX<310 && mouseX>290 && mouseY<310 && mouseY>140) {
ellipse (300, 300, 50, 50);
} else if (mouseX<310 && mouseX>290 && mouseY<360 && mouseY>140) {
ellipse (300, 350, 50, 50);
} else if (mouseX<310 && mouseX>290 && mouseY<410 && mouseY>140) {
ellipse (300, 400, 50, 50);
} else if (mouseX<310 && mouseX>290 && mouseY<460 && mouseY>140) {
ellipse (300, 450, 50, 50);
} else if (mouseX<310 && mouseX>290 && mouseY<510 && mouseY>140) {
ellipse (300, 500, 50, 50);
}
//Parameters for piece placement are set for column 6
if (mouseX<360 && mouseX>340 && mouseY<110 && mouseY>90) {
ellipse (350, 100, 50, 50);
} else if (mouseX<360 && mouseX>340 && mouseY<160 && mouseY>140) {
ellipse (350, 150, 50, 50);
} else if (mouseX<360 && mouseX>340 && mouseY<210 && mouseY>140) {
ellipse (350, 200, 50, 50);
} else if (mouseX<360 && mouseX>340 && mouseY<260 && mouseY>140) {
ellipse (350, 250, 50, 50);
} else if (mouseX<360 && mouseX>340 && mouseY<310 && mouseY>140) {
ellipse (350, 300, 50, 50);
} else if (mouseX<360 && mouseX>340 && mouseY<360 && mouseY>140) {
ellipse (350, 350, 50, 50);
} else if (mouseX<360 && mouseX>340 && mouseY<410 && mouseY>140) {
ellipse (350, 400, 50, 50);
} else if (mouseX<360 && mouseX>340 && mouseY<460 && mouseY>140) {
ellipse (350, 450, 50, 50);
} else if (mouseX<360 && mouseX>340 && mouseY<510 && mouseY>140) {
ellipse (350, 500, 50, 50);
}
//Parameters for piece placement are set for column 7
if (mouseX<410 && mouseX>390 && mouseY<110 && mouseY>90) {
ellipse (400, 100, 50, 50);
} else if (mouseX<410 && mouseX>390 && mouseY<160 && mouseY>140) {
ellipse (400, 150, 50, 50);
} else if (mouseX<410 && mouseX>390 && mouseY<210 && mouseY>140) {
ellipse (400, 200, 50, 50);
} else if (mouseX<410 && mouseX>390 && mouseY<260 && mouseY>140) {
ellipse (400, 250, 50, 50);
} else if (mouseX<410 && mouseX>390 && mouseY<310 && mouseY>140) {
ellipse (400, 300, 50, 50);
} else if (mouseX<410 && mouseX>390 && mouseY<360 && mouseY>140) {
ellipse (400, 350, 50, 50);
} else if (mouseX<410 && mouseX>390 && mouseY<410 && mouseY>140) {
ellipse (400, 400, 50, 50);
} else if (mouseX<410 && mouseX>390 && mouseY<460 && mouseY>140) {
ellipse (400, 450, 50, 50);
} else if (mouseX<410 && mouseX>390 && mouseY<510 && mouseY>140) {
ellipse (400, 500, 50, 50);
}
//Parameters for piece placement are set for column 8
if (mouseX<460 && mouseX>440 && mouseY<110 && mouseY>90) {
ellipse (450, 100, 50, 50);
} else if (mouseX<460 && mouseX>440 && mouseY<160 && mouseY>140) {
ellipse (450, 150, 50, 50);
} else if (mouseX<460 && mouseX>440 && mouseY<210 && mouseY>140) {
ellipse (450, 200, 50, 50);
} else if (mouseX<460 && mouseX>440 && mouseY<260 && mouseY>140) {
ellipse (450, 250, 50, 50);
} else if (mouseX<460 && mouseX>440 && mouseY<310 && mouseY>140) {
ellipse (450, 300, 50, 50);
} else if (mouseX<460 && mouseX>440 && mouseY<360 && mouseY>140) {
ellipse (450, 350, 50, 50);
} else if (mouseX<460 && mouseX>440 && mouseY<410 && mouseY>140) {
ellipse (450, 400, 50, 50);
} else if (mouseX<460 && mouseX>440 && mouseY<460 && mouseY>140) {
ellipse (450, 450, 50, 50);
} else if (mouseX<460 && mouseX>440 && mouseY<510 && mouseY>140) {
ellipse (450, 500, 50, 50);
}
//Parameters for piece placement are set for column 9
if (mouseX<510 && mouseX>490 && mouseY<110 && mouseY>90) {
ellipse (500, 100, 50, 50);
} else if (mouseX<510 && mouseX>490 && mouseY<160 && mouseY>90) {
ellipse (500, 150, 50, 50);
} else if (mouseX<510 && mouseX>490 && mouseY<210 && mouseY>90) {
ellipse (500, 200, 50, 50);
} else if (mouseX<510 && mouseX>490 && mouseY<260 && mouseY>140) {
ellipse (500, 250, 50, 50);
} else if (mouseX<510 && mouseX>490 && mouseY<310 && mouseY>140) {
ellipse (500, 300, 50, 50);
} else if (mouseX<510 && mouseX>490 && mouseY<360 && mouseY>140) {
ellipse (500, 350, 50, 50);
} else if (mouseX<510 && mouseX>490 && mouseY<410 && mouseY>140) {
ellipse (500, 400, 50, 50);
} else if (mouseX<510 && mouseX>490 && mouseY<460 && mouseY>140) {
ellipse (500, 450, 50, 50);
} else if (mouseX<510 && mouseX>490 && mouseY<510 && mouseY>140) {
ellipse (500, 500, 50, 50);
}
//Parameters for piece placement are set for column 10
if (mouseX<560 && mouseX>540 && mouseY<110 && mouseY>90) {
ellipse (550, 100, 50, 50);
} else if (mouseX<560 && mouseX>540 && mouseY<160 && mouseY>90) {
ellipse (550, 150, 50, 50);
} else if (mouseX<560 && mouseX>540 && mouseY<210 && mouseY>90) {
ellipse (550, 200, 50, 50);
} else if (mouseX<560 && mouseX>540 && mouseY<260 && mouseY>140) {
ellipse (550, 250, 50, 50);
} else if (mouseX<560 && mouseX>540 && mouseY<310 && mouseY>140) {
ellipse (550, 300, 50, 50);
} else if (mouseX<560 && mouseX>540 && mouseY<360 && mouseY>140) {
ellipse (550, 350, 50, 50);
} else if (mouseX<560 && mouseX>540 && mouseY<410 && mouseY>140) {
ellipse (550, 400, 50, 50);
} else if (mouseX<560 && mouseX>540 && mouseY<460 && mouseY>140) {
ellipse (550, 450, 50, 50);
} else if (mouseX<560 && mouseX>540 && mouseY<510 && mouseY>140) {
ellipse (550, 500, 50, 50);
}
//Parameters for piece placement are set for column 11
if (mouseX<610 && mouseX>590 && mouseY<110 && mouseY>90) {
ellipse (600, 100, 50, 50);
} else if (mouseX<610 && mouseX>590 && mouseY<160 && mouseY>90) {
ellipse (600, 150, 50, 50);
} else if (mouseX<610 && mouseX>590 && mouseY<210 && mouseY>90) {
ellipse (600, 200, 50, 50);
} else if (mouseX<610 && mouseX>590 && mouseY<260 && mouseY>140) {
ellipse (600, 250, 50, 50);
} else if (mouseX<610 && mouseX>590 && mouseY<310 && mouseY>140) {
ellipse (600, 300, 50, 50);
} else if (mouseX<610 && mouseX>590 && mouseY<360 && mouseY>140) {
ellipse (600, 350, 50, 50);
} else if (mouseX<610 && mouseX>590 && mouseY<410 && mouseY>140) {
ellipse (600, 400, 50, 50);
} else if (mouseX<610 && mouseX>590 && mouseY<460 && mouseY>140) {
ellipse (600, 450, 50, 50);
} else if (mouseX<610 && mouseX>590 && mouseY<510 && mouseY>140) {
ellipse (600, 500, 50, 50);
}
//Parameters for piece placement are set for column 12
if (mouseX<660 && mouseX>640 && mouseY<110 && mouseY>90) {
ellipse (650, 100, 50, 50);
} else if (mouseX<660 && mouseX>640 && mouseY<160 && mouseY>90) {
ellipse (650, 150, 50, 50);
} else if (mouseX<660 && mouseX>640 && mouseY<210 && mouseY>90) {
ellipse (650, 200, 50, 50);
} else if (mouseX<660 && mouseX>640 && mouseY<260 && mouseY>140) {
ellipse (650, 250, 50, 50);
} else if (mouseX<660 && mouseX>640 && mouseY<310 && mouseY>140) {
ellipse (650, 300, 50, 50);
} else if (mouseX<660 && mouseX>640 && mouseY<360 && mouseY>140) {
ellipse (650, 350, 50, 50);
} else if (mouseX<660 && mouseX>640 && mouseY<410 && mouseY>140) {
ellipse (650, 400, 50, 50);
} else if (mouseX<660 && mouseX>640 && mouseY<460 && mouseY>140) {
ellipse (650, 450, 50, 50);
} else if (mouseX<660 && mouseX>640 && mouseY<510 && mouseY>140) {
ellipse (650, 500, 50, 50);
}
//Parameters for piece placement are set for column 13
if (mouseX<710 && mouseX>690 && mouseY<110 && mouseY>90) {
ellipse (700, 100, 50, 50);
} else if (mouseX<710 && mouseX>690 && mouseY<160 && mouseY>90) {
ellipse (700, 150, 50, 50);
} else if (mouseX<710 && mouseX>690 && mouseY<210 && mouseY>90) {
ellipse (700, 200, 50, 50);
} else if (mouseX<710 && mouseX>690 && mouseY<260 && mouseY>140) {
ellipse (700, 250, 50, 50);
} else if (mouseX<710 && mouseX>690 && mouseY<310 && mouseY>140) {
ellipse (700, 300, 50, 50);
} else if (mouseX<710 && mouseX>690 && mouseY<360 && mouseY>140) {
ellipse (700, 350, 50, 50);
} else if (mouseX<710 && mouseX>690 && mouseY<410 && mouseY>140) {
ellipse (700, 400, 50, 50);
} else if (mouseX<710 && mouseX>690 && mouseY<460 && mouseY>140) {
ellipse (700, 450, 50, 50);
} else if (mouseX<710 && mouseX>690 && mouseY<510 && mouseY>140) {
ellipse (700, 500, 50, 50);
}
}