Your browser does not support the canvas tag.

previous        Show / Hide Source        Download        next
/*
__________________________________________________________
 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);
  }
}