Advanced — Day 5

Free Build

Day Schedule
Online
TimeActivity
10:00Discuss Day Plan
What each student/pair wants to finish or polish
10:15Breakout Groups
Polish and complete the game
10:45Break
10:55Breakout Groups
Final touches and internal demos
11:25Post-Assessment
Link provided separately
11:40Show & Tell
12:10Meetup
Beginner group joins
12:20Closeout
In-Person
TimeActivity
8:00Discuss Day Plan
What each student/pair wants to finish or polish
8:15Breakout Groups
Polish and complete the game
9:40Break
9:50Breakout Groups
Final touches and internal demos
11:00Post-Assessment
Link provided separately
11:20Show & Tell
11:50Open Coding / Overflow
Last-minute additions or help other students
12:10Meetup
Beginner group joins
12:20Closeout
Learning Objectives
  1. Complete and polish the chosen game
  2. Demo the finished game in show & tell
# INSTRUCTOR — Day 5: Free Build (Advanced)
# -----------------------------------------------
# TEACH: Students build whatever game or application they want.
# AI is their primary tool. Your role: review generated code WITH students,
# not for them. Ask "What does this line do?" before approving any paste.
#
# STRUCTURE FOR THE DAY:
#   Morning:  Build time — students work on their chosen project
#   Midday:   10-min check-in — each student states what they built and what's next
#   Afternoon: Continue building; then post-assessment, group photo, Show & Tell
#
# SHOW & TELL PROMPT:
#   "Show your project and explain ONE decision you made while building it."
#   ("I used a list because..." / "I added this feature because...")
#
# -----------------------------------------------
# STARTER TEMPLATES (share with students who are stuck on what to build)
# -----------------------------------------------

# ── OPTION 1: Platformer ──────────────────────────────────────────────
# A character that walks left/right and jumps between platforms.
# Suggest prompt: "Help me build a simple platformer in Python using Turtle.
#   The character should walk left and right and jump.
#   Start with just the character moving on a flat floor."

import turtle
import time

screen = turtle.Screen()
screen.title("Platformer Starter")
screen.bgcolor("sky blue")
screen.setup(width=700, height=500)
screen.tracer(0)

player = turtle.Turtle()
player.shape("square")
player.color("blue")
player.penup()
player.goto(-300, -180)

velocity_y = 0
gravity = -1.5
on_ground = True

ground = turtle.Turtle()
ground.penup()
ground.hideturtle()
ground.color("green")
ground.goto(-350, -200)
ground.pendown()
ground.goto(350, -200)
ground.penup()

def move_left():
    player.setx(player.xcor() - 20)

def move_right():
    player.setx(player.xcor() + 20)

def jump():
    global velocity_y, on_ground
    if on_ground:
        velocity_y = 18
        on_ground = False

screen.listen()
screen.onkeypress(move_left,  "Left")
screen.onkeypress(move_right, "Right")
screen.onkeypress(jump,       "space")

while True:
    screen.update()

    velocity_y += gravity
    player.sety(player.ycor() + velocity_y)

    if player.ycor() <= -185:
        player.sety(-185)
        velocity_y = 0
        on_ground = True

    time.sleep(0.02)


# ── OPTION 2: Reaction Time Game ──────────────────────────────────────
# A shape appears at a random time; player presses Space as fast as possible.
# Suggest prompt: "I want to make a reaction-time game in Python using Turtle.
#   A colored circle appears at a random time. The player presses Space.
#   Measure and display the reaction time in seconds."

# import turtle, time, random
# screen = turtle.Screen()
# ...
# appear_time = time.time() + random.uniform(2, 5)
# # In loop: if time.time() >= appear_time: show the circle
# # On Space press: reaction = time.time() - appear_time; show result


# ── OPTION 3: Memory Matching ─────────────────────────────────────────
# 8 pairs of colored tiles; click two at a time; matched pairs stay visible.
# Suggest prompt: "Build a memory matching game in Python using Turtle.
#   There are 8 pairs of colored squares arranged in a 4x4 grid.
#   The player clicks two at a time. If they match, they stay revealed.
#   If not, they flip back face-down after 1 second."

# ── PROMPT TEMPLATES (post on screen or print for students) ──────────
#
# Getting started:
#   "Help me build [game] in Python using the Turtle library.
#    Start with the simplest possible version — just [core mechanic]."
#
# Adding a feature:
#   "I have a Python [game] using Turtle. Here is my code: [paste].
#    Add [feature]. Keep the existing variable names and structure."
#
# Debugging:
#   "My Python Turtle game has a bug. Here is my code: [paste].
#    The problem is: [describe exactly what goes wrong]."
#
# Understanding a line:
#   "Explain line [N] of this code to me like I'm a middle schooler."