IB Computer Science 1


Friday (10/18/19)


  • Prepare to demo Functions: Hover Buttons next class
  • More advanced mouse variables and functions:
  • Complete Bouncing Ball
  • Complete Basic Pool: Part 1
    1. Make the background green
    2. Create a randomly located white ball on the screen with dx and dy both set to 0 so that it is not moving; however both its x and y coordinates should be random. You can generate random numbers using random(low, high)
    3. As soon as the mouse button is pressed, make the ball stop where it is (set dx and dy to 0).
    4. While the mouse button is being held down, draw a red line from the middle of the ball to the mouse pointer
    5. Releasing the mouse changes the ball's velocity (dx and dy variables) using the differences between (x, y) and (mouseX, mouseY). i.e. the larger the green line, the faster the ball should move. If the speed is too fast, you can try shrinking the difference by dividing by 10 or another number
    6. As the ball moves around the screen, it should properly bounce off the edges
    7. Add a non-white second ball on the screen that is not moving, but randomly located. You can generate random numbers using random(low, high)
    8. To detect if the two balls ever collide, check the distance between their centers (x, y) and (x2, y2). If the distance is less than the sum of their two radii (r1 + r1), then there is a collision. Add a collision checking if-statement that temporarily changes the fill color of the balls to red if they collide, otherwise change it back to white
    9. Challenges:
      • Play around with stroke weight and color
      • Add friction (you'll need to create new variables) to slow down the ball

Wednesday (10/16/19)

  • PSATs

Tuesday (10/15/19)


  • Group 4 Project permission slips
  • Function definitions & return repl.it questions?
  • Demo your completed Tic-Tac-Toe: Part 3 if you have not already done so
  • Tic-Tac-Toe w/ Functions walk-through
  • Complete and demo Functions: Emoji Assignment
  • Work on Functions: Hover Buttons


Thursday (10/10/19)


  • Group 4 Project permission slips
  • Demo your completed Tic-Tac-Toe: Part 3
  • Introduction to Functions
  • Complete repl.it assignment titled: "Function definitions & return"
  • Work on Functions: Emoji Assignment


  • Complete "Function definitions & return" repl.it assignment if you did not do so in class

Tuesday (10/8/19)


  • Group 4 Project permission slips
  • Complete & demo Tic-Tac-Toe - Part 2
  • Tic-Tac-Toe - Part 3
    1. Be sure to create a new sketch so as not to lose your working Part 2 code, and copy over your Part 2 code to the new sketch
    2. Add if-statements and conditionals to check if any 3 in a row match
      • Don't forget to make sure that one of the slot variables is not equal to the empty string because 3 empty slots will be considered a match too
    3. Display a text() message that indicates the winner
    4. Call the noLoop() function to stop the game when there is a winner
    5. Implement a mechanism/conditional to check if the game is a draw (tie)
  • Demo a completed Tic-Tac-Toe game
  • Challenge:
    1. Implement an AI to play against you

Friday (10/4/19)


  • Group 4 Project - field trip slips
  • Complete and demo Tic-Tac-Toe: Part 2 (see description from Wednesday)
  • If you have completed Tic-Tac-Toe: Part 2, then proceed to adding conditionals to determine winning
  • Don't forget about cat's games (tie-game) where the board is completely full

Wednesday (10/2/19)


  • Demonstrate Tic-Tac-Toe Select-a-Square
  • Read text() and test out its example code snippet
    • You can use text() to draw X and O on the screen for our game!
  • Read global variables and test out its example code snippet in Processing
    • You will interact with the code snippet by hitting keys
    • Focus on understanding the use of the global keyword
  • Read mouseReleased() and test out its example code snippet in Processing
    • You will interact with the code snippet by pressing and releasing the mouse/trackpad button
    • The mouseReleased() function automatically runs every time the mouse's button is released
  • What components of Tic-Tac-Toe are left?
    • Copy your Tic-Tac-Toe code to a new Processing sketch program and save it as TTT_Part2
    • Declare/create a global string variable named turn and initialize it to either "X" or "O"
    • Declare/create global variables for each square in the game (e.g. b_0_0, b_0_1) -- you will use these variables to track where moves are made
      • Initialize all the b_#_# variables to empty strings ""
    • Update your draw() so that all of the b_#_# variables are text()-ed onto the screen at their appropriate locations. Test out your program by giving some of the b_#_# variables "X" and "O". You should see them appear on the screen. Once your testing is done, revert them back to empty string ""
    • Define the mouseReleased() function like the example linked above. Read all of the following guidelines for mouseReleased()
      • You will add/modify the mouseReleased() code block, such that you will determine where the mouse is releasing (using if-statements), and then you will change/update the corresponding b_#_# variable
      • You can use the same if statements and conditionals from the previous "select-a-square" lab! (i.e. copy all your if-statements from the draw() and paste them into mouseReleased(). You will not need any of the fill() or rect() in mouseReleased()
      • If a particular square is clicked, then save the current player's turn into that specific b_#_#
    • Every time you release the mouse and draw "X" or "O", the turn should switch
    • You must not allow a move to occur in a space that already has a move

IBCS1 - 1920 - September

IBCS1 - Archives